UglifyJs报Unexpected token punc «:», expected punc «,» 这类错误的解决办法

本文分享了一种解决Vue项目打包时出现Unexpected token punc «:», expected punc «,»错误的方法,通过配置webpack的uglifyjs-webpack-plugin插件的exclude选项,排除特定的js文件,从而帮助开发者定位并解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   起因是打包vue的项目。然后报出了这个错误。关键他并没有明确的说明是哪里报错。只是提示了Unexpected token punc «:», expected punc «,» [static/js/app.28653113.js:4107,15],只说是在这个文件里面。but,打包没通过。这个文件根本就没有啊。。有时候报错是Unexpected token punc «:», expected punc «,» [./src/utils/request.js:8,11][static/js/app.28653113.js:4107,15],这种明确提示了文件的还好排查。如果遇到上面的报错。咋搞。经过我一晚上的努力。终于找出一个解决这类问题的通用方法。

   首先我们查看webpack的文档。发现uglifyjs-webpack-plugin这个插件有个exclude配置。即配置的文件都会被压缩插件排除,那么排除这个生成的js文件。我们不就能获得打包的项目,然后就可以排查问题了噻,实际操作如下。

针对低版本的vue-cli,这个时候还能看得到配置。我们找到build目录下的webpack.prod.conf.js文件,找到

minimizer: [
      new UglifyJsPlugin({
        sourceMap: true,
        uglifyOptions: {
          ecma: 8,
          compress: {
            warnings: false
          }
        }
      }),
      // Compress extracted CSS. We are using this plugin so that possible
      // duplicated CSS from different components can be deduped.
      new OptimizeCSSAssetsPlugin()
    ]

如上这段代码。。题外话。webpack4才有minimizer这个配置。低版本应该是没有的。然后我们加上exclude选项,并且包含报错的文件:

minimizer: [
      new UglifyJsPlugin({
       
        sourceMap: true,
        uglifyOptions: {
          ecma: 8,
          compress: {
            warnings: false
          }
        }
      }),
      // Compress extracted CSS. We are using this plugin so that possible
      // duplicated CSS from different components can be deduped.
      new OptimizeCSSAssetsPlugin()
    ]

排除掉上面一直报错的这个文件,其他参数可以忽略。主要是exclude,打包就能顺利通过,结果如下



然后我们就可以去刚刚一直报错的文件里面找为啥报错。我这里报错的是app.28653113.js的第4107行15列,也就是报错提示上的【static/js/app.28653113.js:4107,15】分号后面的两个数字,找到4107行,结果如下


因为安全问题。我把url改成了xxxx。但是错误是很明显的。对象的value本来应该是个字符串。所以才会一直报这个错。然后这个设置也很好找。就在config里面。当然其他人的错和我这个应该不会都一样。但是定位到问题,就好解决了。这个问题真是坑了我一一晚上
好惨。。。

转载于:https://www.cnblogs.com/yuweia/p/10521102.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值