发布于 4年前

解决: ERROR in xx from UglifyJs keyword «const»

ERROR UglifyJs keyword «const»

脚手架编译配置在另一个项目里用的时候,报了这个错,解决的时候走了些弯路,记录一下。

1.最容易搜到的解决方式(不推荐用)

 {
        test: /\.js$/,
        loader: 'babel-loader',
        //exclude: /node_modules/,    //注释后,会先进行es5转换,然后打包压缩 
  }

这样改是有她的道理的,因为:UglifyJsPlugin不能压缩es6代码,项目中可能引用了某些es6的npm包。

但是:很可能会引起一个新的错误 !!!

TypeError: $export is not a function

这个错误怎么解呢,如果去找解决方案,会找到这样的答案

{
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/,    // 需要加上这一行
}

哈哈哈,惊不惊喜,意不意外。。。

2.采用terser-webpack-plugin(推荐)

uglifyjs-webpack-plugin 使用的 uglify-es 已经不再维护,取而代之的是一个名为 terser 的分支。所以 webpack 官方放弃了使用 uglifyjs-webpack-plugin,建议使用 terser-webpack-plugin。

地址:https://github.com/webpack-contrib/terser-webpack-plugin

跟着文档说明 替换就行了 很简单。

心得建议

捣鼓脚手架之类的东西时,很容易遇到各种五花八门的报错。
正确的解决动作应该是去 github 的 issue 下去搜,省时间。

©2020 edoou.com   京ICP备16001874号-3