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

相关推荐
程序员爱钓鱼2 小时前
Node.js 编程实战:博客系统 —— 数据库设计
前端·后端·node.js
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于Web技术的知识付费平台为例,包含答辩的问题和答案
前端
困惑阿三2 小时前
利用 Flexbox 实现无需媒体查询(Media Queries)的自动响应式网格。
开发语言·前端·javascript
2501_948122632 小时前
rn_for_openharmony_steam资讯app实战-标签游戏列表实现
react.js·游戏·harmonyos
朝阳392 小时前
前端项目的 【README.md】详解
前端
浩冉学编程2 小时前
html中在某个父元素动态生成列表子元素,添加点击事件,利用事件委托
前端·javascript·html
OpenTiny社区2 小时前
TinyPro v1.4 空降:Spring Boot 集成,后端兄弟也能愉快写前端!
前端·javascript·vue.js
R-sz2 小时前
UE5像素流与Vue通信
前端·vue.js·ue5
古迪红尘2 小时前
el-tree 采用懒加载方式,怎么初始化就显示根节点和下级节点
前端·javascript·vue.js