将优先命令行标志传递给nodejs中的组合脚本

时间:2019-08-21 16:56:51

标签: node.js npm command-line flags

例如,在nodejs package.json文件中有一个组合脚本

"scripts": {
    "combination": "node service1.js; node service2.js"
}

我可以使用

运行此组合脚本
$ npm run combination

此命令将首先运行service1.js,并且当service1.js的执行终止时,service2.js将开始。这两个脚本都可以接受相同的命令行可选标志。例如,

node service1.js --showlog=true --logintodatabase=true
node service1.js --showlog=true --logintodatabase=true

但是,我只想在运行service1.js脚本时将这些命令行标志传递给combination。如果我通过将命令行标志提供为

来执行combination脚本
$ npm run combination -- --showlog=true --logintodatabase=true

标志适用于script2.js

如何将命令行标志传递给combination脚本,以便仅script1.js而不是script2.js接收标志。我需要保留脚本的执行顺序。

1 个答案:

答案 0 :(得分:0)

通过将combination脚本分为combinationpostcombination(即

)解决了此问题
"scripts": {
    "combination": "node service1.js",
    "postcombination": "node service2.js"
}

现在我跑步

$ npm run combination -- --showlog=true --logintodatabase=true

首先service1.js脚本接收标志并执行,然后执行script2.js