package.json
残念ながら、特定の環境に対してのみスクリプトを定義することはできません。
postinstall
で次のように宣言されたスクリプトがあるとしpackage.json
ます。
{
"scripts": {
"postinstall": "node postInstall.js"
},
}
「簡単な」postInstall.js
方法は、このスクリプトに環境に関するロジックを追加することです。
if (process.env.NODE_ENV === 'production') {
// Do not run in production
process.exit(1);
}
環境で実行している場合はproduction
、たとえば指定された終了コードを使用して、できるだけ早くプロセスを終了するように Node.js に指示するだけです。
フックで複数のスクリプトをpostinstall
実行している場合は、同じメカニズムを持つラッパーですべてのスクリプトの実行を移動して、特定の環境で終了することもできます。そうでない場合は、他のすべてのスクリプトを実行します。
常に Unix システムで実行している場合の別のアプローチは、Bash 条件を使用して Node.js 環境を直接確認することです。
{
"scripts": {
"postinstall": "[ \"$NODE_ENV\" != production ] && node postInstall.js"
},
}
この場合、ノード環境が でない場合は、スクリプトproduction
を実行しています。のみなど、postInstall.js
他の条件に合わせて調整できます。development