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

问题描述:

我有一个NodeJS文件,我通过“npm”命令运行。我一直在试图列出所有参数(包括标志)。如果我通过直接调用节点exe来运行它,它工作正常,但如果我使用npm命令,我无法访问标志。如何通过npm run-script将标志传递给nodejs应用程序?

代码:

console.dir(process.argv); 

当我运行像这样的文件,

node file.js arg1 arg2 -f --flag2 

我可以得到所有的参数。

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

但如果我添加一个NPM亚军到的package.json文件,并尝试运行它,我只能得到论点,但没有标志。

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" 
} 

基本上,节点将无法通过标志来运行的脚本。有没有解决方案?我真正的项目有很长的路径,所以我想用一个快捷方式来测试它。

参数之前使用双破折号:

npm run test -- arg1 arg2 -f --flag2 
+0

工作正常。谢谢。 – amone