webpack 打包压缩 ES6文件报错 UglifyJs + Unexpected token punc (()

报错信息

1
2
3
4
ERROR in static/js/app.cc5c533156716b3e128a.js from UglifyJs
Unexpected token: punc (() [static/js/app.cc5c533156716b3e128a.js:187,9]
Build failed with errors.

原因

目录下缺少 .babelrc 文件,无法编译 ES6 代码。

方法

方法一

添加并配置此文件即可。
Babel 是将 ES6 代码转为 ES5 代码的转码器,.babelrc 就是 Babel 的配置文件。
规则如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": ["transform-runtime"],
"env": {
"test": {
"presets": ["env", "stage-2"],
"plugins": ["istanbul"]
}
}
}
方法二

可使用 npm 或 yarn 安装 babel-cli 进行命令行转码。

更多 babel 相关知识可查看 http://www.ruanyifeng.com/blog/2016/01/babel.html