grunt uglify不接受lambda或箭头函数

时间:2016-08-10 12:09:04

标签: lambda gruntjs grunt-contrib-uglify arrow-functions

我正在运行grunt-contrib-uglify v 2.15.1。当我使用lambda或箭头函数时,它会失败:

Running "uglify:admin" (uglify) task
{ message: 'SyntaxError: Unexpected token: operator (>)',
  filename: 'admin-app-ng.js',
  line: 4927,
  col: 50,
  pos: 216049,
  stack: 'Error\n    at new JS_Parse_Error (eval at <anonymous>

如果我删除了lambda,那么uglify函数。 有没有办法在使用lambda / arrow函数时使用uglify?

这是箭头功能:

myService.getActions($scope.myVar, (type) => (type === 'myType')?true:false);

1 个答案:

答案 0 :(得分:3)

箭头功能是ES6的一项功能,并且在Uglify for ES6中不支持,因此您的ES6需要先转换为ES5才能进行升级。

当您使用grunt时,您可以在grunt-contrib-uglify之前添加另一项任务 - 将您的JavaScript源从ES6转换为ES5。 Babel可用于执行此操作,并且有一个Babel grunt plugin