2017-02-27 204 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傳遞給這兩個腳本。