Javascript 为什么可以';t我用“传递参数”-&引用;从命令行到我的节点模块?
我正在从Javascript 为什么可以';t我用“传递参数”-&引用;从命令行到我的节点模块?,javascript,node.js,npm,npm-install,node-modules,Javascript,Node.js,Npm,Npm Install,Node Modules,我正在从package.json中的脚本运行模块。当我添加如下命令行参数时,它只传递不以负(-)开头的参数: 我得到的参数是: [ '/home/myhome/apps/node-v6.4.0-linux-x64/bin/node', '/home/myhome/Development/code/node_modules/.bin/mymodule', 'two' ] 我在开头添加了一个或多个减号的任何参数都不会被传递。即使我把它们放在引号中,比如npm run mys
package.json
中的脚本运行模块。当我添加如下命令行参数时,它只传递不以负(-)开头的参数:
我得到的参数是:
[
'/home/myhome/apps/node-v6.4.0-linux-x64/bin/node',
'/home/myhome/Development/code/node_modules/.bin/mymodule',
'two'
]
我在开头添加了一个或多个减号的任何参数都不会被传递。即使我把它们放在引号中,比如npm run myscript”--一两个“
或npm run myscript”--一两个“
,它仍然不会发送到我的模块
如何获取这些命令行参数?您必须这样传递,然后可以使用
process.env.捕获它。
npm run myscript --one=somevalue --two=somevalue
经过更多的搜索和测试后,似乎传递它们的唯一方法是在arg前面加上
--arg something
注意--
后面的空格。没有这个空间,它就不能工作。例如,这将not将arg传递给您:npm运行myscript--ignore-arge
。你必须像这样做:
npm run myscript -- -one two
请参阅:您是否尝试过
npm运行myscript--1-2
?看,我刚发现。这似乎是一个混乱的黑客,但它的工作。谢谢。它很管用。。。为了我。。删除了引号。。。顺便说一句,我想你已经得到了答案…只是再做一次,对我来说仍然不起作用。你们有什么npm版本?(我有3.10.3,我的节点是6.4.0)也许他们在更高版本中更新了它的工作原理?
npm run myscript -- -one two