問題

場所ベースのスクリプト(これはカナダ版)用のpackage.jsonにいくつかのスクリプトがあります。

 "dev-ca": "npm run development-ca",
"development-ca": "cross-env process.env.location=us NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
 

これは正常に動作しますが、私は実行する必要があります

 npm run dev-ca
 

私はむしろ走りたい

 npm run dev --ca
 

これは可能ですか?私はまだ私のローカル(英国)サイトのために私の標準のnpm run devを実行したい。

  ベストアンサー

npmスクリプトにフラグを渡すには(npm run自体とは対照的に)、最終的な--の後にそれらを渡します。

 npm run dev -- --ca
 

ビルドでフラグを取得するための粗い解決策は次のとおりです。

 // somewhere in your config file
const argv = process.argv.join('');
let location = 'uk'; // default to UK
for (const flag of ['ca', /* other locations... */]) {
  if (argv.includes(`--${flag}`)) {
    location = flag;
  }
}
 

これに関する改善は、フラグパーサを使用することです。 minimist 、特に複数のフラグを渡している場合です。

  同じタグがついた質問を見る

webpackconfigurationlocalizationpackage.jsonflags