【问题标题】:UglifyJS throws error Unexpected token: operator (>) [duplicate]UglifyJS 抛出错误 Unexpected token: operator (>) [重复]
【发布时间】:2016-09-05 11:42:34
【问题描述】:

我现在有这个

ready : function(){
    bus.$on('a-data', (param) => {
        this.name = param.name;
        this.age = param.age;
    })
},

虽然在禁用 uglifyjs 时运行此特定代码,但启用时会引发以下错误

SyntaxError: Unexpected token: operator (>)

这是我的 uglify 配置

new webpack.optimize.UglifyJsPlugin({
    minimize: true,
    sourceMap: false,
    compress: {
        warnings: false,
        sequences: true,
        dead_code: true,
        conditionals: true,
        booleans: true,
        unused: true,
        if_return: true,
        join_vars: true,
        drop_console: true
    }
}))

我似乎无法理解为什么它不起作用。 有什么想法吗?

【问题讨论】:

  • 单参数箭头函数不需要括号,bus.$on('a-data', (param) => {应该是bus.$on('a-data', param => {
  • @Roberrrt 这行不通!
  • 我的印象是 UglifyJS 支持 ES6,但我认为并非如此。检查@CodingWithSpike 的答案。

标签: javascript node.js uglifyjs


【解决方案1】:

UglifyJS 还没有内置 ES6/Harmony 支持。

他们有一个open GitHub issue for tracking the status of that feature


这通常不是问题,因为大多数人倾向于首先通过 Babel 运行他们的 ES6 代码以向后兼容旧浏览器,结果会通过 Uglify。

【讨论】:

  • 尽管我通过 Babel 运行了所有代码。然后,我正在使用 uglify :/
  • 你使用的是什么 babel 预设?如果使用 es2015 预设,babel 会将箭头函数替换为标准函数。另一种选择可能是尝试 Babili 而不是 Uglify:github.com/babel/babili
猜你喜欢
  • 1970-01-01
  • 2018-03-08
  • 2018-04-04
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多