来自UglifyJs的bundle.js中的错误

Cha*_*son 8 javascript node.js npm uglifyjs webpack

我已经完成了一个项目,现在是时候构建它了.我正在使用样板项目,但仍然无法完全理解所有npm/webpack内容.运行"npm start"时,我收到错误:

ERROR in bundle.js from UglifyJs
SyntaxError: Unexpected token: punc ()) [bundle.js:848,29]
Run Code Online (Sandbox Code Playgroud)

在这个问题上搜索互联网一个小时后,我仍然无法解决它.根据我的理解,这个问题正在发生,因为Uglify还不喜欢ES2016.但是,我在互联网上找到的解决方案似乎没有起作用或者没有足够的意义让我实施.

我发现了这个stackoverflow问题,并将项目的package.json文件中的webpack行更改为:

"webpack": "fulls1z3/webpack#v2.1.0-beta.27-harmony"
Run Code Online (Sandbox Code Playgroud)

但这没效果.目前我还不能理解分支webpack的另一个建议.

我也尝试在我的src文件夹上运行babel另一个建议,但似乎没有做任何事情或我错误地运行它.

有没有人对这个问题有一个很好的解决方案?我现在非常困难,没有时间从头开始学习npm/webpack,以完全掌握正在发生的事情.

非常感激!

Fil*_*vić 9

是的,UglifyJS仅支持ES5语法.您需要正确配置Babel以将源转换为ES5语法.

由于您使用的是Webpack 2,因此您需要的是最小的Babel配置:

{
  "presets": [
    ["es2015", {"modules": false}]
  ]
}
Run Code Online (Sandbox Code Playgroud)

这将需要babel-preset-es2015预设.将上述内容扔进去.babelrc,你的babel-loader意志将照顾其余部分.

或者,您可以尝试babelify,这是Babel的支持ES6语法的现代缩小器.如果你的目标是newever发布,我会衷心推荐.