来自 UglifyJs 的 bundle.js 中的错误

新手上路,请多包涵

我已经完成了一个项目,现在是构建它的时候了。我正在使用一个样板项目,但仍然不完全理解幕后发生的所有 npm/webpack 事情。运行“npm start”时,我收到错误:

 ERROR in bundle.js from UglifyJs
SyntaxError: Unexpected token: punc ()) [bundle.js:848,29]

在网上搜索这个问题一个小时后,我仍然无法解决它。据我了解,这个问题的发生是因为 Uglify 还不喜欢 ES2016。但是,我在 Internet 上找到的解决方案似乎不起作用,或者对我来说实施起来意义不大。

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

 "webpack": "fulls1z3/webpack#v2.1.0-beta.27-harmony"

但这没有用。分叉 webpack 的另一个建议目前超出了我的理解范围。

我还尝试按照另一个建议在我的 src 文件夹上运行 babel,但这似乎没有做任何事情,或者我运行不正确。

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

非常感激!

原文由 Charlie Harrison 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 366
1 个回答

是的,UglifyJS 只支持 ES5 语法。您需要正确配置 Babel 才能将源代码转换为 ES5 语法。

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

 {
  "presets": [
    ["es2015", {"modules": false}]
  ]
}

这将需要 babel-preset-es2015 预设。将以上内容放入 .babelrc 中,您的 babel-loader 将负责其余部分。

或者,您可以尝试 babelify ,它是支持 ES6 语法的 Babel 现代压缩器。如果您的目标是新版本,我会衷心推荐。

原文由 Filip Dupanović 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题