該篇文章記錄踩過的坑
-
uglifyjs-webpack-plugin壓縮代碼報punc (()錯誤
網(wǎng)上查資料缘回,說是uglifyjs不支持es6乔询,由于是node_modules里面的包代碼在babel沒有編譯究流,uglifyjs也沒有編譯,所以報錯。
我把.babelrc文件里面你的presets:["es2015"],并且把stage-2改為stage-1叼丑,仍然沒有解決該問題罢浇。
后來查到uglifyjs@3支持es6編譯陆赋,所以在uglifyOptions里面設(shè)置了ecma:7,并使用了bababili嚷闭,但是問題依然存在攒岛。
后來在uglifyjs-webpack-plugin的issues里面查到很多人提出相應(yīng)的bug,但是問題依然沒有解決胞锰。將uflifyjs-webpack-plugin從2.1.1降到2.1.0版本也沒有解決問題灾锯。
最終通過兩種方法解決了該問題:
- 去掉uglifyjs-webpackl-plugin相關(guān)的配置(webpack4中mode設(shè)置為product后,webpack會自動壓縮優(yōu)化代碼嗅榕,無需手動配置壓縮)
optimization: {
//...其他配置
minimizer: [
new uglifyjsPlugin({
uglifyOptions: {
ecma: 6
}
})
]
}
改為:
optimization: {
//...其他配置
}
- 用terser-webpack-plugin插件替代uglifyjs-webpack-plugin來壓縮js
optimization: {
// ...其他配置
minimizer: [
new terserPlugin({
terserOptions: {
ecma: 6,
compress: true
}
})
]
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者