UglifyJs Unexpected token: punc (,)

博客围绕Vue打包报错展开,排查了几种可能原因。先是检查@click传参逗号问题,确认无误;接着用uglifyjs - webpack - plugin替换webpack.optimize.UglifyJsPlugin仍报错;最终发现是依赖包使用es6未经过babel - loader解析,经处理后解决问题。

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

vue打包报错:
在这里插入图片描述
查到几种可能原因,一一排除

  1. @click 调用方法传参多了个逗号
    仔细检查了,确认没有写多逗号
  2. uglifyjs-webpack-plugin代替webpack.optimize.UglifyJsPlugin
yarn uglifyjs-webpack-plugin --save-dev
  new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false
      },
      sourceMap: config.build.productionSourceMap,
      parallel: true
    }),

替换成:

const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
...
   new UglifyJsPlugin({
      "uglifyOptions":
          {
            compress: {
              warnings: false,
              drop_debugger: true, 
              drop_console: true 
            }
          },
          sourceMap: config.build.productionSourceMap,
          parallel: true
    }),

重新build还是报错

  1. 依赖包使用了es6,但是未经过babel-loader解析
    用sourceMap:”source-map“模式看一下具体报错的文件:
    在这里插入图片描述
{
        test: /\.mjs$/,
        loader: 'babel-loader',
        include: [resolve('node_modules/@vant/popperjs/dist/index.esm.mjs')]
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: [resolve('src'), resolve('test'), resolve('node_modules/js/static'), resolve('node_modules/mint-ui/node_modules/vue-lazyload')]
      },

这时候再重新build发现竟然可以了!
再把第二步的修改还原看一下,build也没有报错。
所以可以确定问题出在依赖包中使用了es6,将相关包用babel-loader解析一下即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值