2017-08-07 69 views
2

我有一个节点脚本来检查一些条件。我们称它为condition.js。我有另一个脚本来运行我的程序,我们称之为runner.jsrunner.js被脚本中的我的package.json文件中的命令以及condition.js引用了它们自己的命令。我希望condition.jsrunner.js之前运行。如果运行时某个条件为真(它检查某个字符串)condition.js,我希望第二个脚本在它后面运行。如果不是这样,我不希望第二个脚本运行。我如何在package.json中做到这一点?package.json脚本条件

+0

编写第三个脚本,将** it **放入'package.json'中,并相应地运行其他两个脚本。 – ceejayoz

+0

这是有道理的,但我不能更明确地做到这一点,以显示两个脚本之间的关系? – munchschair

+2

不,你不能。这是一个JSON文件 - 它不打算在逻辑前端做一堆繁重的工作。让你的单个脚本来显示。 – ceejayoz

回答

2

condition.js你需要exit()节点进程与非零退出代码。然后在您的package.json文件,您可以检查是否根据退出代码(零与否)执行第二脚本:

在你condition.js文件:

if (true) { // use your actual condition 
    process.exit(128); 
} 

然后,在你package.json

{ 
    "scripts": { 
    "special": "node condition.js && node runner.js" 
    } 
} 

现在,您可以从命令行运行npm run specialrunner.js文件仅在condition.js以零代码退出时运行(如果节点执行时为缺省值正常结束)。