uglifyjs php,webpack3 使用ES6:ERROR in XX.js from UglifyJs

ERROR

ERROR in bundle.e65c521704a601f16148.js from UglifyJs

Unexpected token: name (extends) [bundle.e65c521704a601f16148.js:1,57374]

或者

ERROR in xx.js from UglifyJs

Invalid Assignment ..

原因分析

webpack3的uglify-js 版本太低,不支持ES6语法

解决:uglifyjs-webpack-plugin插件包支持ES6

//add import

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

//in the plugins section

plugins: [

new UglifyJsPlugin()

]

然而:加入了uglifyjs-webpack-plugin插件,理论上应该解决。实际上还是会失败。

因为 webpack -p 中的 -p 会隐含使用 webpack3 自带的 uglifyjs 0.4.6,这个版本不支持 ES6, 所以要设法去掉 -p 参数,使新的uglifyjs生效。

'-p' 参数有两个作用:

添加 UglifyJS plugin 到build process

设置 process.env.NODE_ENV = 'production'

实际上第一个作用,我们已经手动导入了,因此只需要在代码中设置 production 即可。在代码中手动设置为生产环境:

plugins: [

new webpack.DefinePlugin({

'process.env': {

'NODE_ENV': JSON.stringify("production")

}

})

]

然后在 webpack命令中去掉 -p, 大功告成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值