webpack 模式(mode)配置详解:development与production的区别

作者:沉舟

时间:2026-10-23

浏览:291

本文详解webpack中mode配置选项的使用方法及对内置优化的影响。通过设置development或production,可控制NODE_ENV值及启用各类插件。对比发现,production模式会移除未使用代码并压缩文件,显著减小体积,而development保留更多调试信息。

文章目录

webpack 模式(mode)配置详解:development与production的区别

模式(mode)

通过提供 mode 配置选项,可以告知 webpack 使用相应模式的内置优化。

用法

只需在配置文件中提供 mode 选项即可:


module.exports = {
 mode: 'production'
};
 

或者从 CLI 参数中传递:


webpack --mode=production

支持以下字符串值:

1.development

这会将 process.env.NODE_ENV 的值设为 development。同时启用 NamedChunksPlugin 和 NamedModulesPlugin。


// webpack.development.config.js
module.exports = {
+ mode: 'development'
- plugins: [
-  new webpack.NamedModulesPlugin(),
-  new webpack.DefinePlugin({ "process.env.NODE_ENV": JSON.stringify("development") }),
- ]
}
 

2.production

这会将 process.env.NODE_ENV 的值设为 production。同时启用 FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin 和 UglifyJsPlugin。


// webpack.production.config.js
module.exports = {
+ mode: 'production',
- plugins: [
-  new UglifyJsPlugin(/* ... */),
-  new webpack.DefinePlugin({ "process.env.NODE_ENV": JSON.stringify("production") }),
-  new webpack.optimize.ModuleConcatenationPlugin(),
-  new webpack.NoEmitOnErrorsPlugin()
- ]
}
 

在 production 模式下会启用 UglifyJsPlugin 插件(移除未使用的内容和文件压缩),分别用 production 和 development 打包,编译的区别:

1.development 打包后,一些没有依赖的方法、变量、文件会保留,production 则会移除。

2.production 打包后,代码会进行压缩,比 development 的文件小。

到此这篇关于 webpack 中的模式(mode)使用详解的文章就介绍到这了,更多相关 webpack 模式内容请搜素本站以前的文章或下面相关文章,希望大家以后多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章