Некоторые особенности es6 не понятны grunt uglify js?
Я использовал grunt-uglify в своем проекте, и я работаю с es6. для некоторых функций es6, таких как жирная стрелка, выдается ошибка. Я думаю, что уродство не понимает этот синтаксис. так у меня есть способ исправить эту проблему. Я имею в виду, могу ли я использовать что-нибудь, чтобы uglify понимал все синтаксисы es6?
4 ответа
Официально пока нет инструмента, который минимизирует ES6 (другие инструменты, такие как компилятор Google Closure, поддерживают ES6, но переносят его в "традиционный js", а затем минимизируют).
Хотя не все функции es6 поддерживаются в UglifyJ, ветка Harmony в UglifyJS2, похоже, поддерживает функции стрелок и другие функции.
Вы можете прочитать обсуждение этого вопроса в github здесь. Кажется, нет другого варианта ждать (или создать свой собственный минификатор ES6).
Обновить
Теперь у вас есть 2 варианта для минимизации ES6:
Вы можете использовать harmony
филиал grunt-contrib-uglify
,
npm install git://github.com/gruntjs/grunt-contrib-uglify.git#harmony --save-dev
отлично работает с es6. Никаких дополнительных настроек для grunt не требуется.
Grunt плагин ES6 анализатор, Mangler / компрессор и Beautifier инструментарий для ES6+ теперь доступен:
https://github.com/adascal/grunt-terser
Отличная работа, все работает как положено.
В harmony
филиал grunt-contrib-uglify
является устаревшим, это не устойчивое решение.
Если результирующий код не должен использовать синтаксис ES6, также возможно перенести ES6 в ES5, прежде чем улучшить ваш код. Это можно сделать, например, с помощью задачи Grunt https://github.com/termi/grunt-es6-transpiler.