如何通过npm run-script将标志传递给nodejs应用程序?

11 浏览
0 Comments

如何通过npm run-script将标志传递给nodejs应用程序?

我有一个通过"npm"命令运行的NodeJS文件。我一直在尝试列出所有的参数(包括标志)。如果我直接调用node执行它,它可以正常工作,但如果我使用npm命令,我就无法访问标志。

代码:

console.dir(process.argv);

当我像这样运行文件时,

node file.js arg1 arg2 -f --flag2

我可以得到所有的参数。

[ '/usr/local/bin/node',
  '/.../file.js',
  'arg1',
  'arg2',
  '-f',
  '--flag2' ]

但是如果我在package.json文件中添加一个npm运行器并尝试用它运行,我只能得到参数而无法得到标志。

npm run test arg1 arg2 -f --flag2

结果:

[ '/usr/local/bin/node',
  '/.../file.js',
  'arg1',
  'arg2' ]

package.json文件:

{

"name": "name",

"version": "1.0.0",

"description": "",

"main": "test.js",

"scripts": {

"test": "echo \"Error: no test specified\" && exit 1",

"test" : "node test.js"

},

"keywords": [],

"author": "",

"license": "ISC"

}

基本上,node不会将标志传递给正在运行的脚本。有没有解决这个问题的办法?我的真实项目有一个很长的路径和很多参数,所以我想使用一个快捷方式来测试它。

0