在npm命令中传递多个参数

时间:2018-12-03 14:37:28

标签: javascript node.js npm

我正在尝试在npm命令中传递参数,并在脚本中使用该参数

示例:

npm运行测试-b chrome -e质量检查

"scripts": {
    "test": "something.js ./xyz/abc/cdf --something \"{\\\"browser\\\": \\\"<process.argv[2]>\\\"}\""
}

我不确定如何在脚本中访问。

请咨询

1 个答案:

答案 0 :(得分:1)

something.js中,您可以通过process.argv访问过程参数。

它将是x个元素的数组,其中前两个是运行脚本的可执行文件,第二个是正在运行的脚本的路径。

尝试console.log(process.argv);查看最新消息。

在您的特定示例中,应删除转义的"字符以使其正常工作,如下所示:

终端中的运行节点

node somethings.js ./xyz/abc/cdf --something "{\\\"browser\\\": \\\"<process.argv[2]>\\\"}"

结果:

[ '/usr/local/bin/node', '/Users/user/Documents/test.js', './xyz/abc/cdf', '--something', '{\\"browser\\": \\"<process.argv[2]>\\"}' ]


package.json脚本

"scripts": { "test": "node test.js" },

注意:将节点添加为测试脚本中的可执行文件

运行npm run test -b chrome -e QA

结果:

[ '/usr/local/bin/node', '/Users/user/Documents/test.js', 'chrome', 'QA' ]

如果您也想在其中添加-b-e参数,请添加--。像这样:

npm run test -- -b chrome -e QA

结果

[ '/usr/local/bin/node', '/Users/user/Documents/test.js', '-b', 'chrome', '-e', 'QA' ]