试图了解webpack.EnvironmentPlugin正在为我做什么。
使用mode和webpack.EnvironmentPlugin冗余?
即
module.exports = merge(webpackCommonConfig, {
mode: 'development',
...
plugins: [
new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }),
],
...
});
Run Code Online (Sandbox Code Playgroud)
TLDR:仅此示例的简短答案:是的,它是多余的。
长答案:除了说模式正在更改NODE_ENV的env var外,还有很多事情要做。尽管从表面上看,它似乎new webpack.EnvironmentPlugin({ NODE_ENV: 'development' })只是在运行,而是在运行。
是的,仅针对此特定用例!
TL; DR;
--mode development自动设置:
process.env.NODE_ENV为值development
--mode production自动设置:
process.env.NODE_ENV为值production
您无需添加以下插件:
new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }),
这是唯一多余的设置,因为NODE_ENV: 'development|production'在使用--mode!时会自动设置。
如果未设置--mode,它将自动默认为production!
继续阅读,以了解为什么--mode实际上并不是多余的,以及它实际上是做什么的:
如果设置--mode为production或,实际上会发生什么development:
模式:发展
设置
process.env.NODE_ENV为valuedevelopment。
启用:
NamedChunksPlugin
和NamedModulesPlugin。
模式:生产
设置
process.env.NODE_ENV为valueproduction。
启用:
FlagDependencyUsagePlugin,FlagIncludedChunksPlugin,
ModuleConcatenationPlugin,NoEmitOnErrorsPlugin,OccurrenceOrderPlugin,SideEffectsFlagPlugin
和UglifyJsPlugin。
--mode将不同的插件添加到编译过程中,具体取决于为其设置了哪个值mode。
请记住,设置NODE_ENV不会自动设置模式
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |