2017-02-27 206 views
3

有一种方法来传递命令行参数的NPM“前”脚本或以它运行多个命令的脚本?传递命令行参数NPM“前”脚本和脚本与多个命令

假设一个简单的脚本mySexyScript.js,只是将注销process.argv:

console.log(process.argv); 

这工作

随着NPM脚本:

... 
"scripts": { 
    .... 
    "sexyscript": "node mySexyScript.js" 
    .... 
} 
... 

运行:

npm run sexyscript -- --foo=bar 

参数都记录到控制台预期。

'预' 脚本 - 这不起作用

随着NPM脚本:

... 
"scripts": { 
    .... 
    "presexyscript": "node mySexyScript.js" 
    "sexyscript": "node mySuperSexyScript.js" 
    .... 
} 
... 

运行:

npm run sexyscript -- --foo=bar 

参数不传递给mySexyScript他们还没有登录

多个命令 - 这也不起作用

随着NPM脚本:

... 
"scripts": { 
    .... 
    "sexyscript": "node mySexyScript.js && node mySuperSexyScript.js" 
    .... 
} 
... 

运行:

npm run sexyscript -- --foo=bar 

参数不传递给mySexyScript和他们没有登录

回答

1

无法按照您所描述的方式传递参数。

假定package.json

... 
"scripts": { 
    .... 
    "somescript": "node one.js && node two.js" 
    .... 
} 
... 

运行:

npm run somescript -- --foo=bar 

基本上只是运行

node one.js && node two.js --foo=bar 
上的默认系统外壳(通常 bashcmd.exe

npm实际上并不知道关于shell运算符的任何内容(即&&),所以它不能将args传递给这两个脚本。