最近想对代码进行压缩,于是使用:
new webpack.optimize.UglifyJsPlugin({
compress: {
dead_code: true, //移除没有被引用的代码
warnings: false, //当删除没有用处的代码时,显示警告
loops: true //当do、while 、 for循环的判断条件可以确定是,对其进行优化
},
except: ['$super', '$', 'exports', 'require'] //混淆,并排除关键字
})
对代码进行压缩,结果打包时报错:
RROR in ... from UglifyJs
Unexpected token: name (...) [...]
网上有的说是这个插件不支持ES6之类的要加个配置:
webpackconfig.module.rules
{
test: /\.js$/,
loader: "babel-loader"
}
然而并没有什么用。
最后直接将:
new webpack.optimize.UglifyJsPlugin
替换为:
const uglifyjs = require('uglifyjs-webpack-plugin');
webpackconfig.plugin.push(new uglifyjs())
就OK了,只要这两条,连上面的rule都不需要了。
注:
uglifyjs-webpack-plugin版本一定要1.x版本的,2.x版本的依然会报错。
参考资料:
正解:https://stackoverflow.com/questions/42375468/uglify-syntaxerror-unexpected-token-punc
错解:
https://blog.csdn.net/wild46cat/article/details/78024796
网友评论