0

私のpackage.jsonには、これらのスクリプトがあります:

"scripts": {
    "do-build": "ENV=DEV node ./src/setEnvironment.js",
    "do-build:prod": "ENV=PROD node ./src/setEnvironment.js",
    "do-build:dev": "ENV=DEV node ./src/setEnvironment.js"
  }

npm run do-buildしたがって、実行すると が実行され"do-build": "ENV=DEV node ./src/setEnvironment.js"、実行すると がnpm run do-build --prod実行されると仮定し"do-build:prod": "ENV=PROD node ./src/setEnvironment.js"ますが、常にデフォルトの do-build script( "do-build": "ENV=DEV node ./src/setEnvironment.js") を実行します。なぜこれが起こっているのかわからないのですか?

4

2 に答える 2

1

npm は、実行するスクリプトに影響を与える CLI 引数をサポートしていません。したがってnpm run do-build:prod、本番ビルド タスクが実行されます。

于 2016-10-11T14:00:35.593 に答える
0

それは npm スクリプトの仕組みではありません。do-build:prod を実行したい場合は、次のようにする必要があります。npm run do-build:prod

npm スクリプトは、必要に応じてパラメーターを受け入れることができます。たとえば、次のような場合です。

  "scripts": {
    "foo": "echo $1"
  }

次のように実行できnpm run foo barます。スクリプトは最初のコマンド ライン パラメータとして bar を受け取ります。

コマンド ライン オプションのサポートを充実させるには、npm スクリプトを使用する代わりに、gulp や grunt などの充実したタスク ランナーを検討することをお勧めします。

于 2016-10-11T14:01:56.150 に答える