Webpack:F:\nochinese_path\React_code\webpack

mode: 'production' 与 TerserPlugin 的区别

1. mode: 'production'(模式设置)

设置 mode: 'production' 时,webpack 会自动启用多项生产优化,包括:

  • 代码压缩(默认使用 TerserPlugin)
  • Tree Shaking
  • 作用域提升(Scope Hoisting)
  • 移除未使用的代码
  • 优化模块 ID
  • 优化 chunk ID
  • 启用 optimization.minimize: true

2. TerserPlugin(压缩插件)

TerserPlugin 是用于压缩和混淆 JavaScript 的插件:

  • 压缩代码(移除空格、换行等)
  • 混淆变量名
  • 移除注释和死代码
  • 可自定义压缩选项

关键区别

当 mode: 'production' 时:

  • webpack 默认启用 TerserPlugin 进行压缩
  • 使用默认的压缩配置

手动配置 TerserPlugin 时:

  • 可以自定义压缩选项(如保留注释、自定义压缩级别等)
  • 可以替换为其他压缩工具(如 esbuild)
  • 可以禁用压缩(设置 minimize: false)
javascript 复制代码
  optimization: {
    minimize: true,
    minimizer: [new TerserPlugin()]
  }

由于已设置 mode: 'production',这里的 TerserPlugin 配置是冗余的。webpack 会自动使用 TerserPlugin。

如果需要自定义压缩选项,可以这样配置:

javascript 复制代码
optimization: {
  minimize: true,
  minimizer: [
    new TerserPlugin({
      terserOptions: {
        compress: {
          drop_console: true, // 移除 console
        },
        format: {
          comments: false, // 移除注释
        },
      },
    }),
  ],
}

总结:mode: 'production' 是全局优化设置,会自动启用 TerserPlugin;手动配置 TerserPlugin 主要用于自定义压缩行为。

MiniCssExtractPlugin

从JS中提取CSS,并在光盘文件夹中创建一个独立的文件,最后这个css.bundle.js会被通过htmlWebpackPlugin加在index.html

相关推荐
上海魁鲸科技有限公司10 分钟前
APS高级排产系统到底有什么用?一文讲清功能、选型与落地建议
前端·microsoft·excel
陈随易12 分钟前
Bun v1.4 更新总结:把浏览器、图片、定时任务和工程工具都装进一个运行时
前端·后端·程序员
东风破_2 小时前
TypeScript 高级类型进阶:keyof、Exclude、Record 与类型组合思想
前端·后端·typescript
DS随心转插件2 小时前
Grok生成的html怎么导出——AI导出鸭:大模型结构化输出的“最后一公里”工程化解构
前端·人工智能·ai·html·豆包·deepseek·ai导出鸭
এ慕ོ冬℘゜2 小时前
使用 jQuery 动态渲染表格与状态切换
前端·javascript·jquery
人间凡尔赛3 小时前
2026 前端必修:4 个让 CSS 脱胎换骨的现代新特性(附实战代码)
前端·css
用户2181697049303 小时前
Flutter (二十) 轮播图
前端
前端snow3 小时前
ai agent - RAG 汇总
前端
计算机魔术师4 小时前
AI为拿高分不惜入侵网站:22个模型作弊审计,真相让人背脊发凉
前端
晓说前端4 小时前
TypeScript 核心语法应用 —— Vue 3 中的使用(下)
前端·javascript·typescript·类型系统