Как стать автором
Обновить

Комментарии 21

Форматирование исходного кода подкачало. Уберите теги, пожалуйста.
Спасибо, поправили
  1. Непонятно зачем помечать функции-которые-можно-каррировать вместо того чтобы каррировать ВСЕ функции
  2. А редактировать получившееся чудо теперь в чём? Откуда IDE узнают как распарсить @@?

ИМХО, для расширения функционала правильнее было бы реализовать новый плагин, нежели менять сам babel. Плагин можно сопровождать и распространять отдельно, что гораздо легче и реальнее, чем замержить такое в оригинальный репозиторий.

К сожалению (или к счастью?) babel не позволяет написать плагин, что расширит возможности парсера.

А как же такие пресеты, как @babel/preset-typescript или @babel/plugin-proposal-decorators?

Этот синтаксис уже реализован в парсере и просто включается данными плагинами. Ради интереса зайдите и посмотрите код официальных "синтаксических плагинов" (например, первый попавшийся, ну или упомянутый вами).

Спасибо за информацию, жаль только такую разочаровывающую =)

Зачем это делать? Для маленького проекта — это оверхед. Для больших проектов — не выгодно… Если отсутствует какойто синтаксис — лучше реализовывать его на постоянной основе, предложив внестив спецификацию языка, а не придумывать костыли… Костыли — это не есть хорошо
Когда кто-то предлагает изменению в спецификацию языка, кому-то, часто самому предложившему, нужно это реализовывать в плагине к Babel. Также это может быть востребовано в различных фреймворках для реализации DSL, например в шаблонизаторах.
Смысл имплементировать нативные вещи в бабел? Это ересь — я не думаю что прежде чем попасть в пропозал — какието спред операторы или промисы писались под транспайлеры…
А фреймворк привязывать к баблу — вообще бессмысленно…
Смысл имплементировать нативные вещи в бабел?

У Babel'я есть плагины. Можно плагином.
А фреймворк привязывать к баблу — вообще бессмысленно…

Ну React как-то смог привязаться.
Ну плагины это другой разговор — я про данный метод говорю. Да и реакт тоже плагинами реализован

Вот здесь Babel официально декларирует, что они поддерживают все экспериментальные пропозалы, чтобы помочь комитету языка собрать фидбек и варианты использования от реальных пользователей.


Поэтому реализация новой фичи языка через бабель-плагин чтобы потестировать ее на реальных примерах – это нормальная затея.

Ну так плагины это совсем другое разве нет? Тут всё както странно сделано. Возможно меня не так поняли — я имел ввиду не то что чтото реализовывать в бабел не имеет смысла — а делать это вот таким странным способом.

Чтобы прикрутить новый синтаксис – нужно расширять парсер. Плагины этого делать не могут. Официальная рекомендация разработчиков Babel – именно форк, что и делается в этой статье.

26 Apr 2015… Вот babeljs.io/docs/en/plugins там есть Syntax Plugins и Transform Plugins итд

В Syntax Plugins нельзя передать свой кастомный плагин, эта опция принимает только массив строк, который содержит имена плагинов из списка.


Поэтому называть их плагинами не совсем корректно. Это скорее разные режимы парсера, которые можно включать флагами. Когда-нибудь в будущем
может быть их и оформят как полноценные плагины, но пока нет.

Синтаксические плагины только для парсера — для своей интерпретации нужно использовать Transform plugins

Была идея разработать свой ЯП, синтаксис которого можно дополнять плагинами настолько, что можно было бы вводить конструкции типа json, xml и т.п. прямо в код. Идея была, но до реализации руки никак не доходят. Скорее всего такое сделать можно, но по моему это максимум Proof Of Concept.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий