0

npm install npm script から呼び出そうとしていますが、 をそのように設定NODE_ENVしても devDependencies はインストールされませんdevelopment:

{
  "name": "test",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "deploy": "NODE_ENV=development npm i"
  },
  "devDependencies": {
    ...
  }
}

このように、実行時に依存関係のみがインストールされnpm run deploy、devDependencies はインストールされません。これは設計によるものですか?

もう少し情報を提供するためNODE_ENVに、マシンの は に設定されてproductionおり、そのままにしておく必要があります。1 つのスクリプト行だけに環境変数を設定したいのですが、それは通常、他のスクリプトでも機能します。行はNODE_ENV正しく設定され、インストーラーは実行されますが、環境変数が考慮されていません-スクリプトからの呼び出しは、フラグが設定さnpm installれているかのように常に実行されるようです。--production

そのため、シェルからこの行を実行するNODE_ENV=development npm iと、devDependencies と依存関係がインストールされます (この 1 つのコマンドのためだけに、マシンに設定されている NODE_ENV 変数が上書きされます) が、package.json スクリプト ブロックで同じ行を実行すると、NODE_ENV の上書きが無視されます。

  • --productiondevDependencies もインストールしたいので、フラグは役に立ちません。
  • また、私がそれを正しく読んだ場合、devのみまたは--only[prod|dev]prodの依存関係のみをインストールするため、私が望むこともしません。

次の行は、マシンに設定されている場合でも、環境変数としてpackage.json正しく出力されます。developmentproduction

"scripts": {
  "envTest": "NODE_ENV=development node -e 'console.log(process.env.NODE_ENV);'"
}

ありがとう

4

0 に答える 0