代码之家  ›  专栏  ›  技术社区  ›  Polygon Pusher

使用mode和webpack.environmentplugin是否多余?

  •  5
  • Polygon Pusher  · 技术社区  · 7 年前

    试图理解什么 webpack.EnvironmentPlugin 是为了我。

    正在使用 mode webpack.environmentplugin 冗余?

    工业工程

    module.exports = merge(webpackCommonConfig, {
      mode: 'development',
      ...
      plugins: [
        new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }),
      ],
      ...
    });
    

    TLDR编号: 这个例子的简短回答是:是的,它是多余的。

    长话短说:除了说模式正在改变node_env的env var之外,还有很多事情要做。而在表面看起来 new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }) 只是在运行时。

    1 回复  |  直到 7 年前
        1
  •  7
  •   Legends    6 年前

    是的,仅适用于此特定用例!

    TL;博士;

    --mode development 自动设置: process.env.NODE_ENV 重视 development

    --mode production 自动设置: 进程环境节点环境 重视 production

    不需要添加以下插件: new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }),

    这就是 只有 设置为 冗余 ,因为 NODE_ENV: 'development|production' 将在使用时自动设置 --mode 啊!

    如果你不设定 --模式 它将自动默认为 生产 啊!

    继续读下去看看为什么 --模式 实际上并不是多余的,它实际上在引擎盖下做什么:


    如果你设置了 --模式 生产 发展 以下内容:

    模式:开发

    进程环境节点环境 重视 发展 是的。

    使能够:
    NamedChunksPlugin
    NamedModulesPlugin 是的。

    模式:生产

    进程环境节点环境 重视 生产 是的。

    使能够:
    FlagDependencyUsagePlugin 我是说,
    FlagIncludedChunksPlugin 我是说,
    ModuleConcatenationPlugin ,请
    NoEmitOnErrorsPlugin 我是说, OccurrenceOrderPlugin 我是说,
    SideEffectsFlagPlugin
    UglifyJsPlugin 是的。

    --模式 向编译过程中添加不同的插件,具体取决于为 mode 是的。

    >> Reference

    请记住,设置node_env不会自动设置模式