grunt uglify 不接受 lambda 或箭头函数

Gur*_*ard 2 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>
Run Code Online (Sandbox Code Playgroud)

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

这是箭头函数:

myService.getActions($scope.myVar, (type) => (type === 'myType')?true:false);
Run Code Online (Sandbox Code Playgroud)

car*_*ant 5

箭头函数是 ES6 的一个特性,在 Uglify 中不支持 ES6,所以你的 ES6 需要转换到 ES5 才能被丑化。

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