Комментарии 21
- Непонятно зачем помечать функции-которые-можно-каррировать вместо того чтобы каррировать ВСЕ функции
- А редактировать получившееся чудо теперь в чём? Откуда IDE узнают как распарсить @@?
ИМХО, для расширения функционала правильнее было бы реализовать новый плагин, нежели менять сам babel. Плагин можно сопровождать и распространять отдельно, что гораздо легче и реальнее, чем замержить такое в оригинальный репозиторий.
К сожалению (или к счастью?) babel не позволяет написать плагин, что расширит возможности парсера.
А как же такие пресеты, как @babel/preset-typescript
или @babel/plugin-proposal-decorators
?
Этот синтаксис уже реализован в парсере и просто включается данными плагинами. Ради интереса зайдите и посмотрите код официальных "синтаксических плагинов" (например, первый попавшийся, ну или упомянутый вами).
А фреймворк привязывать к баблу — вообще бессмысленно…
Смысл имплементировать нативные вещи в бабел?
У Babel'я есть плагины. Можно плагином.
А фреймворк привязывать к баблу — вообще бессмысленно…
Ну React как-то смог привязаться.
Вот здесь Babel официально декларирует, что они поддерживают все экспериментальные пропозалы, чтобы помочь комитету языка собрать фидбек и варианты использования от реальных пользователей.
Поэтому реализация новой фичи языка через бабель-плагин чтобы потестировать ее на реальных примерах – это нормальная затея.
Чтобы прикрутить новый синтаксис – нужно расширять парсер. Плагины этого делать не могут. Официальная рекомендация разработчиков Babel – именно форк, что и делается в этой статье.
В Syntax Plugins нельзя передать свой кастомный плагин, эта опция принимает только массив строк, который содержит имена плагинов из списка.
Поэтому называть их плагинами не совсем корректно. Это скорее разные режимы парсера, которые можно включать флагами. Когда-нибудь в будущем
может быть их и оформят как полноценные плагины, но пока нет.
Была идея разработать свой ЯП, синтаксис которого можно дополнять плагинами настолько, что можно было бы вводить конструкции типа json, xml и т.п. прямо в код. Идея была, но до реализации руки никак не доходят. Скорее всего такое сделать можно, но по моему это максимум Proof Of Concept.
Создание собственных синтаксических конструкций для JavaScript с использованием Babel. Часть 1