为什么我不能从命令行将带有“-”的参数传递给我的节点模块?
Why can't I pass args with a "-" to my node module from the command line?
我是 运行 我的模块,来自 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
之类的引号中 - 它仍然不会将其发送到我的模块。
如何获取这些命令行参数?
你必须这样通过,然后你可以使用process.env.
捕获它
npm run myscript --one=somevalue --two=somevalue
经过更多的搜索和测试,似乎让它们通过的唯一方法是在您的 args 前加上前缀 -- -arg something
。 注意 --
之后的 space。没有 space,它将无法工作。例如,这将 而不是 将 arg 传递给您:npm run myscript --ignore -arg e
。你必须这样做:
npm run myscript -- -one two
我是 运行 我的模块,来自 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
之类的引号中 - 它仍然不会将其发送到我的模块。
如何获取这些命令行参数?
你必须这样通过,然后你可以使用process.env.
npm run myscript --one=somevalue --two=somevalue
经过更多的搜索和测试,似乎让它们通过的唯一方法是在您的 args 前加上前缀 -- -arg something
。 注意 --
之后的 space。没有 space,它将无法工作。例如,这将 而不是 将 arg 传递给您:npm run myscript --ignore -arg e
。你必须这样做:
npm run myscript -- -one two