踩坑记

该篇文章记录踩过的坑

  1. uglifyjs-webpack-plugin压缩代码报punc (()错误
    网上查资料,说是uglifyjs不支持es6,由于是node_modules里面的包代码在babel没有编译,uglifyjs也没有编译,所以报错。
    我把.babelrc文件里面你的presets:["es2015"],并且把stage-2改为stage-1,仍然没有解决该问题。
    后来查到uglifyjs@3支持es6编译,所以在uglifyOptions里面设置了ecma:7,并使用了bababili,但是问题依然存在。
    后来在uglifyjs-webpack-plugin的issues里面查到很多人提出相应的bug,但是问题依然没有解决。将uflifyjs-webpack-plugin从2.1.1降到2.1.0版本也没有解决问题。
    最终通过两种方法解决了该问题:
  • 去掉uglifyjs-webpackl-plugin相关的配置(webpack4中mode设置为product后,webpack会自动压缩优化代码,无需手动配置压缩)
optimization: {
  //...其他配置
  minimizer: [
    new uglifyjsPlugin({
      uglifyOptions: {
        ecma: 6
      }
    }) 
  ]
}
改为:
optimization: {
  //...其他配置
}
  • 用terser-webpack-plugin插件替代uglifyjs-webpack-plugin来压缩js
optimization: {
    // ...其他配置
  minimizer: [
     new terserPlugin({
        terserOptions: {
          ecma: 6,
          compress: true
        }
    })
  ]
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容