为什么我不能从命令行通过带有“ – ”的args到我的节点模块?
我正在使用package.json
的脚本运行我的模块。 当我添加下面的命令行参数时,它只传递不以( – )开始的参数:
npm run myscript -one two
我得到的参数是:
[ '/home/myhome/apps/node-v6.4.0-linux-x64/bin/node', '/home/myhome/Development/code/node_modules/.bin/mymodule', 'two' ]
任何我在开始时添加一个或多个减号的参数都不会被传递。 即使我把它们放在像npm run myscript "--one two"
或npm run myscript "--one" two
– 它仍然不会将它发送给我的模块。
我如何得到这些命令行参数?
经过更多的search和testing,看起来唯一的方法就是在你的参数-- -arg something
。 注意--
之后的空格 。 如果没有这个空间,这将是行不通的。 例如,这不会将arg传递给你: npm run myscript --ignore -arg e
。 你必须这样做:
npm run myscript -- -one two
请参阅: https : //github.com/npm/npm/issues/3494#issue-14832427
你将不得不像这样通过,然后你可以使用process.env.
捕获它process.env.
npm run myscript --one=somevalue --two=somevalue