【问题标题】:Webpack using flags to run different scriptWebpack 使用标志来运行不同的脚本
【发布时间】:2019-06-30 11:52:46
【问题描述】:

我的 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。

【问题讨论】:

    标签: webpack configuration localization package.json flags


    【解决方案1】:

    要将标志传递给 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,尤其是当你传递不止一个标志时。

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      • 2015-09-14
      相关资源
      最近更新 更多