Babel 8.1 вышел 2 ноября 2026 года: изменения и ограничения

Иллюстрация: преобразование программных модулей в компиляторе
Иллюстрация, созданная с помощью ИИ. Не документальное изображение.

2 ноября 2026 года команда Babel объявила о выпуске версии 8.1.0 — первом минорном обновлении после Babel 8.0. Новость касается инструментов обработки JavaScript: расширены возможности разбора синтаксиса, появились настройки для ESLint и экспериментальная работа с диапазонами в картах исходного кода. Однако три новых плагина не попали в опубликованный релиз из-за ошибки комплектации.

Что нужно знать об отсутствующих плагинах

В официальном журнале версии 8.1.0 сопровождающие отдельно предупреждают об исключённых пакетах: @babel/plugin-proposal-bytes-modules, @babel/plugin-proposal-text-modules и @babel/plugin-proposal-filtered-namespaces. Команда сообщает, что работает над их повторной публикацией под номером 8.1.1.

Это существенное отличие между перечнем разработанных возможностей и составом конкретного выпуска. На момент проверки утром 3 ноября доступный журнал сохранял это предупреждение. Подтверждения готовности исправленной публикации в проверенных источниках нет, поэтому материал не рекомендует рассчитывать на установку этих трёх пакетов именно в версии 8.1.0.

Импорт файлов и новые конструкции языка

В анонсе от 2 ноября описаны Import Bytes и Import Text: они позволяют выразить загрузку файла как массива байтов или строки через атрибут импорта. Преобразование должно учитывать целевую платформу проекта. Для браузера и Node.js механизмы получения содержимого различаются, поэтому настройка целевого окружения остаётся значимой.

Другое направление — фильтрованные пространства имён модулей. Разработчик перечисляет нужные экспорты, что даёт инструментам сборки информацию о реально используемой части модуля. Но команда прямо отмечает ограничение: сочетание таких пространств имён с import defer или export defer пока не преобразуется Babel.

Парсер также получил поддержку deferred re-exports, import.sync и non-shared structs. Для этих предложений анонс говорит о разборе синтаксиса, а не о готовом преобразовании в код для старых окружений. Следовательно, успешный разбор файла ещё не означает, что приложение сможет выполнить получившийся код в любом браузере.

Карты исходников: новая возможность требует совместимости

Отдельное изменение связано с source maps — данными, которые сопоставляют сгенерированный код с исходным. В документации генератора появилась опция sourceMapRanges, добавленная в 8.1.0. По умолчанию она выключена. При включении генератор использует диапазоны сопоставлений, предназначенные для уменьшения размера карты.

У этой настройки есть два ограничения. Во-первых, все последующие инструменты, которые читают карту, включая средства разработчика браузера, должны понимать range mappings. Во-вторых, при использовании inputSourceMap новая опция сейчас игнорируется. Поэтому переключатель нельзя оценивать отдельно от всей цепочки обработки JavaScript.

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

Что изменилось для ESLint и авторов инструментов

Для @babel/eslint-plugin добавлены наборы настроек recommended и all. Они предназначены для использования вместе с соответствующими конфигурациями @eslint/js. При этом регистрация самого плагина и выбор парсера остаются явными шагами: наличие готового набора правил не выполняет их автоматически.

Документация генератора подтверждает и небольшое изменение API: начиная с 8.1.0 функция generate экспортируется также из @babel/core. Если инструмент уже зависит от основного пакета, функцию можно получить оттуда без отдельной зависимости на генератор. Это касается авторов интеграций, которые работают с деревом синтаксиса и печатью кода.

Как читать этот выпуск

Babel 8.1.0 объединяет несколько уровней изменений: разбор новых конструкций, преобразования, генерацию карт и правила анализа кода. При обновлении их следует проверять раздельно, особенно с учётом предупреждения о трёх пропущенных пакетах. Событие датировано 2 ноября 2026 года; статья опубликована 3 ноября. Иллюстрация показывает условную схему компиляции и не является снимком интерфейса Babel.

Ссылка на основную публикацию