Name expected [js/chunk-4b5816b5.0950b124.js:250,6] from UglifyJs

Posted 凯小默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Name expected [js/chunk-4b5816b5.0950b124.js:250,6] from UglifyJs相关的知识,希望对你有一定的参考价值。

问题

vue 项目可以正常启动运行,但是使用 vuecli3 打包时却 js 报错,项目里使用了 html2canvas 跟 jspdf,然后打包里面使用了 uglifyjs-webpack-plugin

原因跟解决方案

因为 uglifyjs-webpack-plugin 不支持新的 es6 语法,解决方法就是使用 terser-webpack-plugin@4.2.3 替换 uglifyjs-webpack-plugin@2.2.0 即可。

vue.config.jsuglifyjs-webpack-plugin@2.2.0 配置

const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
configureWebpack: config => 
    if (process.env.NODE_ENV === 'production') 
      config.optimization.minimizer = [
        new UglifyJsPlugin(
          uglifyOptions: 
            output: 
              comments: true, // 删除注释
            ,
            warnings: false,
            compress: 
              drop_console: true,
              drop_debugger: true, // 删除debugger
              pure_funcs: ["console.log"],
            
          
        )
      ];
    

改成 vue.config.jsterser-webpack-plugin@4.2.3 配置,注意这里需要用 4.x 版本的

const TerserPlugin = require("terser-webpack-plugin");
configureWebpack: config => 
  if (process.env.NODE_ENV === 'production') 
    config.optimization.minimize = true;
    config.plugins.push(
      new TerserPlugin(
        test: /\\.js(\\?.*)?$/i, // 匹配参与压缩的文件
        parallel: true, // 使用多进程并发运行
        terserOptions: 
          // Terser 压缩配置
          output:  comments: false ,
          compress: 
            drop_debugger: true,
            drop_console: true,
            pure_funcs: ['console.log']
          
        
      )
    );
  

以上是关于Name expected [js/chunk-4b5816b5.0950b124.js:250,6] from UglifyJs的主要内容,如果未能解决你的问题,请参考以下文章

JsonError: Expecting property name enclosed in double quotes

ValueError: Expecting property name: line 1 column 2 (char 1)

idea编辑XML文件出现:Tag name expected报错

expect

python:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes问题解决

Python 读json报错json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: