提供mode 配置选项,告知 webpack 使用相应模式的内置优化。
string = 'production': 'none' | 'development' | 'production'
只需在配置对象中提供mode 选项:
module.exports={ mode:'development',};或者从CLI 参数中传递:
webpack --mode=development支持以下字符串值:
| 选项 | 描述 |
|---|---|
development | 会将DefinePlugin 中process.env.NODE_ENV 的值设置为development. 为模块和 chunk 启用有效的名。 |
production | 会将DefinePlugin 中process.env.NODE_ENV 的值设置为production。为模块和 chunk 启用确定性的混淆名称,FlagDependencyUsagePlugin,FlagIncludedChunksPlugin,ModuleConcatenationPlugin,NoEmitOnErrorsPlugin 和TerserPlugin 。 |
none | 不使用任何默认优化选项 |
如果没有设置,webpack 会给mode 的默认值设置为production。
如果mode 未通过配置或 CLI 赋值,CLI 将使用可能有效的NODE_ENV 值作为mode。
// webpack.development.config.jsmodule.exports={ mode:'development',};// webpack.production.config.jsmodule.exports={ mode:'production',};// webpack.custom.config.jsmodule.exports={ mode:'none',};如果要根据webpack.config.js 中的mode 变量更改打包行为,则必须将配置导出为函数,而不是导出对象:
var config={ entry:'./app.js',//...};module.exports=(env, argv)=>{if(argv.mode==='development'){ config.devtool='source-map';}if(argv.mode==='production'){//...}return config;};