解决: 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 下去搜,省时间。