为什么我不能从命令行通过带有“ – ”的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
- Sequelize .sync函数挂起:来自serial.klass的发射器
- $ addToSet一个对象到一个数组在mongoose
- node-canvas在Node中工作,但在PhantomJS中需要时会失败
- 正则expression式从CSSselect器string中提取HTML5类
- 节点NPM SyntaxError:意外的令牌导入
- Javascript eval()exception – 行号
- 性能方面:WPF应用程序比电子应用程序更好地编码吗?
- 我如何授予访问我的网站只有在node.js heroku应用程序
- 如何循环Node / Express中的对象数组,并检查MongoDB数据库中是否存在匹配项?