You need to enable JavaScript to run this app. Webpack 5配置TerserPlugin自定义压缩时require('uglify-module')找不到模块
优惠活动
大模型
产品
解决方案
定价
更多

Webpack 5配置TerserPlugin自定义压缩时require('uglify-module')找不到模块

报错根源
  • 你照搬的配置片段是TerserPlugin官方文档中演示自定义minify函数用法的示例段,其中uglify-module是文档用来指代任意第三方压缩工具的占位符,并非真实发布在npm仓库的可安装包,这就是触发Cannot find module 'uglify-module'报错的核心原因。
  • npm registry检索不到同名包的结果,也刚好印证了这个模块本身就不存在,不是依赖安装异常导致的问题。
修复方案

无自定义压缩逻辑需求的常规场景

如果只是想正常用Terser做代码压缩,不需要自定义minify流程,可直接删掉配置里硬写的自定义minify方法,调整为原生TerserPlugin配置即可,参考配置:

optimization: {
  minimize: true,
  minimizer: [
    new TerserPlugin({
      terserOptions: {
        // 写入实际需要的压缩规则
        compress: {
          drop_console: true,
          drop_debugger: true
        },
        format: {
          comments: false
        }
      },
      extractComments: true
    })
  ]
}

需要自定义压缩流程的场景

如果确实要替换成第三方压缩工具实现自定义压缩逻辑,需要先安装真实存在的对应依赖,再把示例里的占位模块替换为实际安装的包名。以接入uglify-js为例:

  • 先执行安装命令:npm install uglify-js --save-dev
  • 调整minify函数内的模块引用,替换后的完整配置参考:
const UglifyJS = require('uglify-js')

// 其余webpack配置保持不变
optimization: {
  minimize: true,
  minimizer: [
    new TerserPlugin({
      minify: (file, sourceMap, minimizerOptions) => {
        const extractedComments = []
        // 调用真实安装的uglify-js方法完成代码压缩
        const compressResult = UglifyJS.minify(file, {
          sourceMap: !!sourceMap
        })
        return {
          map: compressResult.map,
          code: compressResult.code,
          extractedComments
        }
      }
    })
  ]
}

内容的提问来源于stack exchange,提问作者Delowar Hosain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.08 03:06:05