Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';t我用“传递参数”-&引用;从命令行到我的节点模块?_Javascript_Node.js_Npm_Npm Install_Node Modules - Fatal编程技术网

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