我在我的项目中使用了grunt-uglify并且我正在使用es6。对于某些es6功能,例如胖箭头功能,它会抛出错误。我认为uglify并不理解这种语法。所以我有办法解决这个问题。我的意思是我可以使用任何东西来使uglify理解所有的es6语法吗?
答案 0 :(得分:15)
您可以使用harmony
的{{1}}分支。
grunt-contrib-uglify
与es6完美配合。不需要额外的grunt设置。
答案 1 :(得分:14)
官方还没有缩小ES6的工具(其他工具,如Google Closure编译器支持ES6,但它将其转换为"传统的js"然后它' ;缩小)。
尽管UglifyJs并不支持所有es6功能,但the Harmony branch of UglifyJS2似乎支持箭头功能和其他功能。
You can read the discussion about it in the issue of github here。似乎没有其他选择等待(或创建自己的ES6缩小器)。
<强>更新强>
现在您有两个选项来缩小ES6:
答案 2 :(得分:2)
如果生成的代码不需要使用ES6语法,那么在使用代码之前,也可以将ES6转换为ES5。例如,可以使用Grunt任务grunt-es6-transpiler完成此操作。
答案 3 :(得分:1)
我刚刚更新到 uglify-js@2.8.29 并且有效。
答案 4 :(得分:0)
一个适用于ES6 +的 Grunt插件ES6解析器,mangler / compressor和美化工具包:
https://github.com/adascal/grunt-terser
干得好,它按预期工作。
harmony
的{{1}}分支已被弃用,这不是一个可持续的解决方案。