некоторые функции es6 не поняты grunt uglify js?

Я использовал grunt-uglify в своем проекте, и я работаю с es6. для некоторых функций es6, таких как функция жирной стрелки, это вызывает ошибку. Я думаю, что uglify не понимают этого синтаксиса. так что у меня есть способ решить эту проблему. Я имею в виду, могу ли я использовать что-нибудь, чтобы заставить uglify понять все синтаксисы es6?

4 ответов


официально нет инструмента, который минимизирует ES6 еще (другие инструменты, такие как компилятор закрытия Google, поддерживают ES6, но он транспилирует его в "традиционный js", а затем он минимизируется).

хотя не все функции es6 поддерживаются в UglifyJs,филиал гармонии UglifyJS2 кажется, поддерживает функции стрелки и другие функции.

вы можете прочитать обсуждение об этом в выпуске github здесь. Кажется, нет еще один вариант ожидания (или создать свой собственный ES6 minifier).

обновление

теперь у вас есть 2 варианта для минимизации ES6:


можно использовать harmony филиала grunt-contrib-uglify.

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

отлично работает с es6. Никаких дополнительных настроек для grunt не требуется.


Если результирующему коду не нужно использовать синтаксис ES6, можно также транспилировать ES6 в ES5, прежде чем уродовать код. Это можно, например, сделать с помощью задачи Grunt grunt-es6-транспилер.


Я только что обновил до uglify-js@2.8.29 и это сработало.