2017-02-27 29 views
3

npm 'pre'スクリプトまたは複数のコマンドを実行するスクリプトにコマンドライン引数を渡す方法はありますか?コマンドライン引数をnpm 'pre'スクリプトと複数のコマンドを含むスクリプト

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

ランニング:

console.log(process.argv); 

これは、NPMスクリプトで

に動作します:

だけprocess.argvをログアウトする簡単なスクリプト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

あなたが記述している方法でargsを渡す方法はありません。 package.jsonを想定し

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

実行:

npm run somescript -- --foo=bar 

は、基本的にはデフォルトのシステムシェル(通常はbashまたはcmd.exe)に

node one.js && node two.js --foo=bar 

を実行します。

npmは、実際にシェル演算子(つまり&&)について何も知らないため、両方のスクリプトにargsを渡すことはできません。

関連する問題