Categories: Webpack 教程

Webpack Mode(模式)

提供 ​mode​ 配置选项,告知 webpack 使用相应模式的内置优化

string = production: none | development | production

用法

只需在配置对象中提供 ​mode​ 选项:

module.exports = {
  mode: development,
};

或者从 CLI 参数中传递:

webpack --mode=development

支持以下字符串值:

选项 描述
development 会将 DefinePluginprocess.env.NODE_ENV 的值设置为 development. 为模块和 chunk 启用有效的名。
production 会将 DefinePluginprocess.env.NODE_ENV 的值设置为 production。为模块和 chunk 启用确定性的混淆名称,FlagDependencyUsagePluginFlagIncludedChunksPluginModuleConcatenationPluginNoEmitOnErrorsPluginTerserPlugin
none 不使用任何默认优化选项

如果没有设置,webpack 会给 ​mode​ 的默认值设置为 ​production​。

Mode: development

// webpack.development.config.js
module.exports = {
  mode: development,
};

Mode: production

// webpack.production.config.js
module.exports = {
  mode: production,
};

Mode: none

// webpack.custom.config.js
module.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;
};

Further Reading

冒牌SEO

前端开发者,欢迎大家一起沟通和交流。

Share
Published by
冒牌SEO

Recent Posts

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

4 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

1 月 ago