拉取了一個(gè)新項(xiàng)目裂逐,執(zhí)行 npm run build
時(shí)居然報(bào)錯(cuò)了。
錯(cuò)誤提示可以看到是UglifyJs的問題泣栈,uglifyjs是webpack的一個(gè)plugin卜高,用來壓縮打包后的JS。
uglifyjs在壓縮 ES5 方面做的很優(yōu)秀南片,但是隨著 ES6 語法的普及掺涛,uglifyjs在 ES6 代碼壓縮上做的不夠好,所以有了uglify-es項(xiàng)目疼进,但是之后uglify-es項(xiàng)目不在維護(hù)了薪缆,terser 是從uglify-es項(xiàng)目拉的一個(gè)分支,來繼續(xù)維護(hù)伞广。terser-webpack-plugin 具有跟 Uglifyjs-webpack-plugin 相同的參數(shù)拣帽。
也就是說uglifyjs老了疼电,官方都停更了。現(xiàn)在推薦采用terser-webpack-plugin减拭。
現(xiàn)在動(dòng)手把uglifyjs替換成terser試試蔽豺!
1. 安裝terser
npm install terser-webpack-plugin --save-dev
2. 修改webpack配置
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
optimization: {
minimize: true,
minimizer: [new TerserPlugin()],
},
};
3. 重新打包
npm run build