为什么我不能从命令行向我的节点模块传递带“ - ”的args?

时间:2016-11-04 15:01:19

标签: javascript node.js npm npm-install node-modules

我正在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'
]

我在开头添加一个或多个减号的任何arg都不会被传递。即使我将它们放在npm run myscript "--one two"npm run myscript "--one" two等引号中 - 它仍然不会将其发送到我的模块。

如何获取这些命令行参数?

2 个答案:

答案 0 :(得分:1)

经过更多的搜索和测试,看来传递它们的唯一方法是在你的args前加-- -arg something注意-- 之后的空格。如果没有这个空间,它将无法运作。例如, 将arg传递给您:npm run myscript --ignore -arg e。你必须这样做:

npm run myscript -- -one two

请参阅:https://github.com/npm/npm/issues/3494#issue-14832427

答案 1 :(得分:0)

您必须像这样传递,然后您可以使用process.env.

捕获它
npm run myscript --one=somevalue --two=somevalue