我正在尝试在npm命令中传递参数,并在脚本中使用该参数
示例:
npm运行测试-b chrome -e质量检查
"scripts": {
"test": "something.js ./xyz/abc/cdf --something \"{\\\"browser\\\": \\\"<process.argv[2]>\\\"}\""
}
我不确定如何在脚本中访问。
请咨询
答案 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' ]