grunt uglify js无法理解一些es6功能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grunt uglify js无法理解一些es6功能?相关的知识,希望对你有一定的参考价值。

我在我的项目中使用了grunt-uglify,我正在使用es6。对于某些es6功能,例如胖箭头功能,它会抛出一个错误。我认为uglify不懂语法。所以我有办法解决这个问题。我的意思是我可以使用任何东西来使uglify理解所有的es6语法吗?

答案

目前还没有工具可以缩小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缩小器)。

更新

现在您有2个选项来缩小ES6:

另一答案

你可以使用harmonygrunt-contrib-uglify分支。

npm install git://github.com/gruntjs/grunt-contrib-uglify.git#harmony --save-dev

与es6完美配合。不需要额外的grunt设置。

另一答案

如果生成的代码不需要使用ES6语法,那么在解释代码之前,还可以将ES6转换为ES5。例如,这可以通过Grunt任务grunt-es6-transpiler来完成。

另一答案

我刚刚更新到uglify-js@2.8.29并且它有效。

以上是关于grunt uglify js无法理解一些es6功能?的主要内容,如果未能解决你的问题,请参考以下文章

js压缩 uglify

如何使用grunt-contrib-concat和grunt-contrib-uglify为每个单独的js文件创建源图?

如何在文件夹中uglify多个.js文件并将它们输出到另一个文件夹?

使用grunt压缩js文件执行grunt命令报这个是啥,请高手支招。。。

白鹭发布ES6时uglify-js不支持es6的解决方案

grunt-contrib-uglify