美文网首页
UglifyJs打包报错:Unexpected token: k

UglifyJs打包报错:Unexpected token: k

作者: 木易先生灬 | 来源:发表于2020-03-21 21:14 被阅读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 进行代码压缩。

    1. 安装 terser-webpack-plugin
    npm install terser-webpack-plugin --save-dev
    
    1. 引入 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/

    相关文章

      网友评论

          本文标题:UglifyJs打包报错:Unexpected token: k

          本文链接:https://www.haomeiwen.com/subject/gizuyhtx.html