UglifyJs打包报错:Unexpected token: k
2020-03-21 本文已影响0人
木易先生灬
UglifyJS Webpack Plugin插件用来缩小(压缩优化)js文件,至少需要Node v6.9.0和Webpack v4.0.0版本。
webpack 4之前的版本是通过webpack.optimize.CommonsChunkPlugin来压缩js,webpack 4版本之后被移除了,使用config.optimization.splitChunks来代替。
最近,JavaScript项目在打包过程中莫名其妙报错:
�[1m�[31mERROR in js/main.404d3f8fe19d82485946.js from UglifyJs
Unexpected token: keyword «const» [./node_modules/ismobilejs/esm/isMobile.js:1,0][js/main.404d3f8fe19d82485946.js:4414,0]�[39m�[22m
Build failed with errors.
glifyJs 不能识别 const语法。
问题原因:
1,是UglifyJS不支持ES6的语法。
2,发现uglifyjs-webpack-plugin 2.0版本的Release日志中,明确提示重新切换回到uglify-js,因为uglify-es被废弃了,如果需要ES6代码压缩,请使用terser-webpack-plugin
解决方案
使用 terser-webpack-plugin
替换 uglifyjs-webpack-plugin
进行代码压缩。
- 安装
terser-webpack-plugin
npm install terser-webpack-plugin --save-dev
- 引入
terser-webpack-plugin
npm install terser-webpack-plugin --save-dev
使用 TerserPlugin
替换 UglifyJsPlugin
, terserOptions
替换 uglifyOptions
其他参数基本一致。
更详细的参数可以参看文档:https://github.com/webpack-contrib/terser-webpack-plugin
————————————————
版权声明:本文为CSDN博主「咻咻ing」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/meifannao789456/article/details/104793275/