Выпущен Babel 7 с улучшенной поддержкой TypeScript


Когда-то Babel был спасителем для многих проектов JavaScript. Он взял «будущий» JavaScript и скомпилировал его в «текущий» JavaScript. Но теперь будущее почти наступило, и вопрос в том, нужен ли нам этап компиляции, чтобы замедлить работу?

Некоторое время дела в Babel не шли гладко, но теперь готова 7-я версия:

«Спустя почти 2 года, 4k коммитов, более 50 предварительных релизов и большой объем помощи, мы рады объявить о выпуске Babel 7. Прошло почти 3 года с момента выпуска Babel 6! Там много движущихся частей, так что пожалуйста, терпите нас в первые недели выпуска “.

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

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

Итак, что нового?

Существует ряд критических изменений в конфигурации и использовании, а также есть новый инструмент, помогающий при переносе на новую версию. Есть функции ES2018 и Stage 3, 2 и 1, но, как говорится в объявлении, они могут быть изменены. Я должен сказать, что в этом списке нет ничего более захватывающего, чем новые функции в ES2015 и 16. Возможно, так оно и должно быть; JavaScript сейчас в основном «исправлен», и пора консолидировать.

Большая новая функция – лучшая поддержка TypeScript. Если вы используете TypeScript, то это, вероятно, ничего для вас не изменит. В конце концов, TypeScript уже компилируется в JavaScript. Если вы являетесь пользователем Babel, теперь вы можете скомпилировать TypeScript, но обратите внимание, что вы не получите проверку типа TypeScript.

Теперь доступна экспериментальная система для загрузки только необходимых полифилов, чтобы уменьшить размер кода.

Так есть ли у Бабеля будущее?

Сообщение в блоге, в котором объявляется об этой последней версии, похоже, так думает и выдвигает точку зрения, что пока JavaScript продолжает добавлять функции, есть над чем поработать.

Я не так уверен.

Большинство новых функций в JavaScript теперь «приятны», а не важны. Когда мы перешли на ES2015, такие вещи, как class, Promise и Async / Await, казались необходимыми для написания больших программ. Теперь функции работают с языком, и если вы не можете их использовать, вы многое теряете. Что касается поддержки TypeScript – ну, трудно не видеть в TypeScript конкурента Babel. Возможно, это лучший JavaScript, и он компилируется в ECMAScript 3 или новее.

Единственная роль Babel в будущем – это создание кода, который работает в устаревших браузерах, позволяя вам писать в последней версии JavaScript. Вероятно, этого достаточно для продолжения проекта, но большинство разработчиков JavaScript просто собираются кодировать в ES2015 и забывать о браузерах, с которыми в настоящее время застряли менее 15% пользователей.

Ян Эллиот является автором книг Just JavaScript: An Idiomatic Approach и JavaScript Async: Events, Callbacks, Promises и Async Await в библиотеке I Programmer, опубликованной I / O Press.


Добавить комментарий