webpack压缩js代码时报错:Unexpected token: name ()

最近想对代码进行压缩,于是使用:

new webpack.optimize.UglifyJsPlugin({
    compress: {
        dead_code: true, //移除没有被引用的代码
        warnings: false, //当删除没有用处的代码时,显示警告
        loops: true //当do、while 、 for循环的判断条件可以确定是,对其进行优化
    },
    except: ['$super', '$', 'exports', 'require'] //混淆,并排除关键字
})

对代码进行压缩,结果打包时报错:
RROR in ... from UglifyJs
Unexpected token: name (...) [...]

网上有的说是这个插件不支持ES6之类的要加个配置:
webpackconfig.module.rules

{
    test: /\.js$/,
    loader: "babel-loader"
}

然而并没有什么用。
最后直接将:

new webpack.optimize.UglifyJsPlugin

替换为:

const uglifyjs = require('uglifyjs-webpack-plugin');
webpackconfig.plugin.push(new uglifyjs())

就OK了,只要这两条,连上面的rule都不需要了。
注:
uglifyjs-webpack-plugin版本一定要1.x版本的,2.x版本的依然会报错。

参考资料:
正解:https://stackoverflow.com/questions/42375468/uglify-syntaxerror-unexpected-token-punc
错解:
https://blog.csdn.net/wild46cat/article/details/78024796

你可能感兴趣的:(webpack压缩js代码时报错:Unexpected token: name ())