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

UglifyJs意外token错误:已配置Babel仍无法转换ES6的解决咨询

解决方案:Webpack -p 构建时UglifyJs因ES6语法报错

别担心,这个问题我之前也碰到过,核心原因就是Webpack默认的UglifyJsPlugin确实不支持ES6语法——哪怕你配置了Babel,要么是转译没覆盖到所有代码,要么就是压缩工具没跟上。下面给你几个靠谱的解决办法:

1. 替换为支持ES6的压缩工具(最推荐)

直接换掉旧版UglifyJs,用terser-webpack-plugin就好,它是Webpack官方推荐的替代方案,原生支持ES6+语法压缩,完全能解决let这类语法导致的报错。

操作步骤:

  • 先安装插件:
    npm install terser-webpack-plugin --save-dev
    
  • 修改你的webpack.config.js,添加优化配置:
    const TerserPlugin = require('terser-webpack-plugin');
    
    module.exports = {
      // 其他原有配置...
      optimization: {
        minimizer: [new TerserPlugin()]
      }
    };
    

之后再执行webpack -p,就会用Terser代替旧的UglifyJs,不会再出现ES6语法相关的错误。

2. 确保Babel真正转译了所有ES6代码

有时候配置了babel-loader,但可能没覆盖到所有需要转译的文件,导致部分ES6代码漏网。检查你的loader配置,重点确认这几点:

const path = require('path');

module.exports = {
  // 其他原有配置...
  module: {
    rules: [
      {
        test: /\.jsx?$/, // 匹配所有js、jsx文件
        include: path.resolve(__dirname, 'src'), // 明确指定你的源码目录,确保所有ES6代码都在这里
        exclude: /node_modules/, // 排除第三方依赖(除非某些依赖本身是ES6编写的)
        use: [
          {
            loader: 'babel-loader',
            options: {
              presets: ['es2015', 'es2016', 'react']
            }
          }
        ]
      }
    ]
  }
};

确认include的路径正确,保证你写的包含let的代码都在这个目录下,被babel-loader处理。

3. 升级Babel到7.x版本(更长远的方案)

旧的es2015、es2016预设已经被官方废弃了,推荐用@babel/preset-env代替,它能根据你指定的目标环境自动转译所需的ES特性,转译更精准,也能避免旧预设的潜在问题。

操作步骤:

  • 先卸载旧的Babel依赖:
    npm uninstall babel-loader babel-preset-es2015 babel-preset-es2016 babel-preset-react
    
  • 安装新版Babel包:
    npm install @babel/core @babel-loader @babel/preset-env @babel/preset-react --save-dev
    
  • 修改loader配置:
    {
      loader: 'babel-loader',
      options: {
        presets: [
          '@babel/preset-env', // 替代原有的es2015/es2016预设
          '@babel/preset-react'
        ]
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:35:28