webpack 模式(mode)配置详解:development与production的区别
本文详解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 模式内容请搜素本站以前的文章或下面相关文章,希望大家以后多多支持本站!
UmiJS 项目构建速度优化与打包体积精简技巧
2026-11-04 22:37:09
原生JS操作DOM与Vue/React虚拟DOM的本质区别
2026-11-04 17:52:27
怎么使用console.group和table优化JS日志可读性
2026-11-03 23:14:34
基于AST抽象语法树的JS代码反混淆实战教程
2026-11-03 21:22:24
JS手机号输入校验的性能优化与用户体验提升
2026-11-03 19:19:19








