You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

webpack5运行npm run dev报compiler.plugin is not a function错误怎么解决

问题根因

你遇到的报错是webpack版本与uglifyjs-webpack-plugin版本不兼容导致的:

  • 你当前使用的webpack 5已经彻底移除了旧版compiler.plugin API,而你安装的uglifyjs-webpack-plugin@1.x是适配webpack 3/4的老版本插件,内部调用了已废弃的API,所以启动时抛出类型错误。
  • 另外uglifyjs-webpack-plugin早已停止维护,不支持ES6+语法压缩,webpack 5已经内置了基于Terser的JS压缩能力,完全不需要额外安装该插件。
解决方案

第一步:移除冗余的压缩插件配置

开发环境(mode: development)不需要压缩代码,压缩不仅会拖慢编译、热更新速度,也完全没有使用必要。直接删除webpack.config.js plugins数组中的new UglifyJsPlugin()代码,同时卸载该依赖:

npm uninstall uglifyjs-webpack-plugin -D

生产环境(mode: production)下webpack 5默认会自动开启JS、CSS压缩能力,不需要额外配置插件即可正常使用。
如果有自定义压缩规则的需求(比如生产环境移除console),直接使用webpack内置的TerserPlugin配置即可,不需要安装额外依赖:

// webpack.config.js
module.exports = {
  // 其余配置保持不变
  optimization: {
    minimizer: [
      `...`, // 保留webpack默认的其他压缩配置
      new TerserPlugin({
        terserOptions: {
          compress: {
            drop_console: true
          }
        }
      })
    ]
  }
}

第二步(可选):修复devServer废弃配置

你当前使用的webpack-dev-server 4.x已经废弃了v3版本的contentBase、inline配置,修改devServer配置可避免启动警告:

devServer:{
  static: './dist', // 替换原来的contentBase
  // 删掉inline配置,v4默认开启inline模式
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:27:03