报错提示:
static/js/chunk-libs.631ee8c5.js from UglifyJs
Unexpected token: keyword «const» [static/js/chunk-libs.631ee8c5.js:84,0]
原因:
问题原因: 1,是UglifyJS不支持ES6的语法。 2,发现uglifyjs-webpack-plugin 2.0版本的Release日志中,明确提示重新切换回到uglify-js,因为uglify-es被废弃了,如果需要ES6代码压缩,请使用terser-webpack-plugin
解决方案:
使用 terser-webpack-plugin 替换 uglifyjs-webpack-plugin 进行代码压缩。
npm install terser-webpack-plugin --save
修改配置 vue.config.js
const TerserPlugin = require('terser-webpack-plugin')
config.optimization.minimizer([
// 使用 TerserPlugin
new TerserPlugin({
terserOptions: {
mangle: true, // 混淆,默认也是开的,mangle也是可以配置很多选项的,具体看后面的链接
compress: {
drop_console: true, // 传true就是干掉所有的console.*这些函数的调用.
drop_debugger: true, // 干掉那些debugger;
pure_funcs: ['console.log'] // 如果你要干掉特定的函数比如console.info ,又想删掉后保留其参数中的副作用,那用pure_funcs来处理
}
}
})
// 注释 UglifyjsWebpackPlugin 代码
// new UglifyjsWebpackPlugin({
// // 生产环境推荐关闭 sourcemap 防止源码泄漏
// // 服务端通过前端发送的行列,根据 sourcemap 转为源文件位置
// // sourceMap: false,
// uglifyOptions: {
// warnings: false,
// compress: {
// drop_console: true,
// drop_debugger: true
// }
// }
// })
])