打包遇到的问题

这次项目发布生产遇到打包一直报错:

static/js/chunk-libs.771fb7cb.js from UglifyJs
Unexpected token: punc «,» [static/js/chunk-libs.771fb7cb.js:121736,14]

可在打包dev和uat却遇不到这个问题,度娘说的大都是:

在 UglifyJs 的 github issues #78 找到了这样一个解决方案:由于 UglifyJs 只支持 ES5 而 element-ui 可能引入了一部分 ES6 的写法,所以导致 webpack 打包失败,不过我的是移动端并没有 element-ui 的引入所以并不是一样的问题,

但是我推测问题也是出现UglifyJs 只支持 ES5 ,可错误提示并没有指出问题在哪里出现的,一度忙头苍蝇似的想要把这个版本用到的组件都用babel转换,结果都不行

后来还是要重代码层面分析,生产和uat的打包环境配置区别上来下手,后来发现

configureWebpack: config => {
      // 移除console debugger
      if (productionClear && isProd) {
        config.plugins.push(
          new UglifyJsPlugin({
            uglifyOptions: {
              compress: {
                drop_console: true, // 删除console.*
                pure_funcs: ['console.log'] // 删除console.log
              }
            }
          })
        )
      }
      }
    }
  },
在webpack的configureWebpack配置里面有用isProd判断是否生产的打包,生产打包就 new UglifyJsPlugin处理console的删除,而报错也是UglifyJs的报错注释后打包正常
注意的是本地打包不会出现这个问题,估计也是和打包环境有关系的
posted @ 2022-06-01 10:21  me春天  阅读(309)  评论(0编辑  收藏  举报