Babel 8 переходит к кандидату на релиз; финальная минорная версия Babel 7 выпущена (31 января 2026 года)

ИнструментыBabelJavaScript

Резюме

31 января 2026 года команда Babel опубликовала 7.29.0 (отмеченную как последнюю минорную версию в линии Babel 7) и одновременно выпустила Babel 8.0.0-rc.1 — первый кандидат на релиз для Babel 8. Этот RC завершает набор разрушительных изменений, направленных на устранение давнего технического долга (в частности, выпуск Babel 8 только в формате ESM) и включает ресурсы миграции, чтобы помочь авторам плагинов и интеграторам сборочных инструментов безопасно обновиться. (babeljs.io)

Почему это важно для команд полного стека

  • Babel остается центральным элементом современных сборочных конвейеров JavaScript/TypeScript. Стабильный Babel 8 (только ESM) изменяет способ публикации и потребления инструментов, плагинов и серверных интеграций.
  • Упаковка только для ESM затрагивает любого потребителя, который требует пакеты Babel через вызовы CommonJS require(); код во время сборки и выполнения, который импортирует внутренности Babel (для трансформаций, плагинов или пользовательских шагов сборки), должен перейти на ESM import или использовать интероп-шимы.
  • Авторы плагинов и пресетов должны публиковать совместимые с ESM пакеты и проверять свои API на соответствие Babel 8 RC. CI-пайплайны, которые фиксируют версии или зависят от артефактов CommonJS, потребуют корректировок во время миграции.
  • Блог Babel подчеркивает конкретные улучшения сборочных инструментов для автономного дистрибутива (атрибут data-target для @babel/standalone) и асинхронный API для лучшей интеграции в браузерные трансформации и потоки инструментов. Это может упростить некоторые трансформации на dev-сервере и в браузере, но также требует обновленных вызовов. (babeljs.io)

Ключевые изменения, которые нужно знать (практический взгляд)

  • Babel 8 — это только ESM: основные пакеты будут поставляться как ESM, без вывода сборки CommonJS по умолчанию. Ожидайте использования стиля import и современного разрешения модулей как поддерживаемого пути. (babeljs.io)
  • Ресурсы миграции: команда Babel опубликовала руководство по миграции и сайт документации для Babel 8 (размещенный на домене "next" для документации) и представила codemods / рекомендации для облегчения перехода. Прочитайте их перед обновлением сборочных образов или CI-раннеров. (babeljs.io)
  • Обновления @babel/standalone: новый атрибут data-target позволяет указывать цели трансформации в HTML-тегах скриптов; @babel/core теперь предоставляет асинхронный API, который можно использовать в сценариях инструментов на основе браузера — полезно для инструментов живого кодирования и встроенных редакторов. (babeljs.io)
  • Последняя минорная версия Babel 7: 7.29.0 публикуется как финальная минорная версия в линии 7.x; команды, которым необходимо избежать разрушительных изменений, могут оставаться на ветке 7.x, планируя миграцию. Команда Babel явно позиционировала это как последний выпуск небольшого шага перед базовой версией 8.x. (babeljs.io)

Немедленный контрольный список для инженерных команд (рекомендуется, приоритетно)

  1. Инвентаризация

    • Найдите любые прямые импорты @babel/* пакетов во время выполнения или сборки (включая плагины, внутренности пресетов, обертки для трансформации).
    • Определите код, который вызывает require('@babel/core') или полагается на интероп CommonJS для внутренних компонентов Babel.
  2. Тестирование с RC (в форке/ветке и CI)

    • Добавьте задачу, которая устанавливает 8.0.0-rc.1 и выполняет полные сборки и тестовые наборы.
    • Проверьте серверные среды выполнения и сборочные образы (версии Node, конфигурации сборщиков) на поддержку ESM в контейнерах CI.
  3. Обновление библиотек плагинов и внутренних инструментов

    • Для открытых или внутренних плагинов/пресетов Babel опубликуйте точки входа ESM и проверьте примеры.
    • Если пакет должен оставаться CommonJS, добавьте явные интероп-шимы или небольшую обертку совместимости (только на короткий срок).
  4. Корректировка CI и образов выполнения

    • Убедитесь, что образы Node и инструменты, используемые в CI, поддерживают ESM-паттерны, которые вы планируете использовать (синтаксис импорта, package.json "type": "module" или совместимые загрузчики).
    • Зафиксируйте Babel 7.x в каналах срочного производства, пока вы не подтвердите RC в тестировании.
  5. Коммуникация и планирование

    • Скоординируйте обновления для последующих потребителей (фронтенд, SSR, серверные инструменты).
    • Выделите время для авторов плагинов и инфраструктуры для тестирования и публикации исправлений; ожидайте, что в начале цикла RC появится несколько несовместимых компонентов экосистемы.

Риски и заметки по миграции

  • Большинство крупных сборщиков и фреймворков готовятся к экосистемам с приоритетом ESM; однако более мелкие или устаревшие внутренние инструменты могут сломаться. Тестируйте заранее и приоритизируйте высоконагруженные конвейеры (CD, сборки SSR).
  • Поскольку Babel ввел много разрушительных изменений за флагами в предыдущих релизах 7.x, команда старалась уменьшить шок — тем не менее, ожидайте небольшие различия в API и необходимость повторной публикации в формате ESM. Используйте предоставленное руководство по миграции и codemods, где это возможно. (babeljs.io)

Итог

Достижение Babel 8 RC1 является важной вехой в инструментах: оно завершает долгожданную очистку в сторону экосистемы с приоритетом ESM и открывает практическое окно миграции для авторов плагинов, сборщиков и команд полного стека. Рассматривайте RC как реальную цель тестирования: запускайте его в CI, обновляйте критически важные плагины заранее и сохраняйте фиксированную ветку Babel 7.x для производства, пока вы не подтвердите производительность и совместимость в ваших сборочных и серверных средах. (babeljs.io)

Источник: Блог Babel — 7.29.0 (последняя минорная версия Babel 7) и Babel 8.0.0-rc.1 (31 января 2026 года). (babeljs.io)

Источник

Читать дальше