使用 mode 和 webpack.EnvironmentPlugin 是多余的吗?
Is using mode and webpack.EnvironmentPlugin redundant?
试图了解 webpack.EnvironmentPlugin
对我有什么帮助。
使用 mode
和 webpack.EnvironmentPlugin
是多余的吗?
即
module.exports = merge(webpackCommonConfig, {
mode: 'development',
...
plugins: [
new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }),
],
...
});
TLDR:
仅此示例的简短回答:是的,这是多余的。
长答案:除了说模式正在改变 NODE_ENV 的环境变量之外,还有很多事情要做。虽然从表面上看 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
:
,实际会发生什么
模式:开发
Sets process.env.NODE_ENV
to value development
.
Enables:
NamedChunksPlugin
and NamedModulesPlugin
.
模式:生产
Sets process.env.NODE_ENV
to value production
.
Enables:
FlagDependencyUsagePlugin
,
FlagIncludedChunksPlugin
,
ModuleConcatenationPlugin
,
NoEmitOnErrorsPlugin
,
OccurrenceOrderPlugin
,
SideEffectsFlagPlugin
and UglifyJsPlugin
.
--mode
在编译过程中添加不同的插件,取决于为mode
设置的值。
Please remember that setting NODE_ENV doesn't automatically set mode
试图了解 webpack.EnvironmentPlugin
对我有什么帮助。
使用 mode
和 webpack.EnvironmentPlugin
是多余的吗?
即
module.exports = merge(webpackCommonConfig, {
mode: 'development',
...
plugins: [
new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }),
],
...
});
TLDR: 仅此示例的简短回答:是的,这是多余的。
长答案:除了说模式正在改变 NODE_ENV 的环境变量之外,还有很多事情要做。虽然从表面上看 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
:
模式:开发
Sets
process.env.NODE_ENV
to valuedevelopment
.
Enables:
NamedChunksPlugin
andNamedModulesPlugin
.
模式:生产
Sets
process.env.NODE_ENV
to valueproduction
.
Enables:
FlagDependencyUsagePlugin
,FlagIncludedChunksPlugin
,
ModuleConcatenationPlugin
,NoEmitOnErrorsPlugin
,OccurrenceOrderPlugin
,SideEffectsFlagPlugin
andUglifyJsPlugin
.
--mode
在编译过程中添加不同的插件,取决于为mode
设置的值。
Please remember that setting NODE_ENV doesn't automatically set mode