Babel
Babel — свободный транскомпилятор (source-to-source compiler) с открытым исходным кодом для JavaScript, предназначенный для преобразования кода ECMAScript 2015+ в обратно совместимый JavaScript, работающий в средах, не поддерживающих новейшие возможности языка[2][3].
Общие сведения
| Babel | |
|---|---|
| англ. Babel | |
| Область использования | Веб-разработка, JavaScript |
| Дата появления | 28 сентября 2014[1] |
| Место появления | Австралия[1] |
| Автор понятия | Себастьян Маккензи[1] |
Определение
Babel реализует процесс «транспиляции» — построчного преобразования исходного кода, написанного на одной редакции языка, в эквивалентный код другой редакции. Основные цели инструмента:
- обеспечить кроссбраузерную совместимость современных возможностей JavaScript;
- позволить разработчику использовать предложения стандарта, ещё не получившие нативной поддержки;
- автоматизировать добавление полифиллов недостающих API;
- предоставить гибкую архитектуру плагинов для любых дополнительных трансформаций[4].
Проект был создан 28 сентября 2014 года австралийским программистом Себастьяном Маккензи, который на тот момент был школьником в последнем классе. Изначально инструмент носил название 6to5, что отражало его основную функцию — преобразование кода со стандарта ECMAScript 6 (ES2015) в обратно совместимый ECMAScript 5, который поддерживался большинством браузеров того времени[5]. Сам Маккензи начал разработку с целью лучше изучить новые возможности языка. В декабре 2014 года он переехал в Сидней и присоединился к компании Thinkmill, где продолжил работу над проектом.
2015 год стал поворотным в развитии проекта. 15 февраля 2015 года инструмент был официально переименован из «6to5» в Babel[6]. Это изменение отражало расширение миссии: Babel позиционировался уже не просто как транспайлер из ES6 в ES5, а как универсальная платформа для создания инструментов для JavaScript[6].
31 марта состоялся релиз Babel 5.0, который представил официальный API для плагинов и поддержку файла конфигурации `.babelrc` для централизованной настройки проекта[7]. Кроме того, инструмент начал придерживаться стадий предложений комитета TC39, включая по умолчанию возможности, достигшие стадии 2 и выше, а также добавил поддержку экспериментальных функций из предложений к ES7, таких как декораторы и свойства классов[7].
В июле 2015 года создатель проекта Себастьян Маккензи присоединился к компании Facebook, чтобы работать над Babel полный рабочий день[8].
29 октября 2015 года был выпущен Babel 6.0, ставший самым значительным обновлением в истории проекта[9]. Эта версия принесла с собой радикальные архитектурные изменения:
- Модульная архитектура: Babel был полностью переписан и разделён на множество небольших, независимых пакетов в npm[8];
- Отказ от трансформаций по умолчанию: В отличие от предыдущих версий, Babel 6 «из коробки» перестал выполнять какие-либо преобразования кода, превратившись в настраиваемую платформу[8];
- Введение пресетов (presets): Для упрощения настройки была добавлена концепция пресетов — готовых наборов плагинов. Например, для трансформации синтаксиса ECMAScript 2015 стало достаточно подключить пресет `babel-preset-es2015`[10];
- Оптимизация производительности: Новая архитектура позволила объединять все плагины в один проход по синтаксическому дереву, что значительно улучшило скорость компиляции[9].
В 2016 году развитие Babel было направлено на расширение функциональности и превращение его в полноценную платформу для работы с JavaScript. В версии 6.13.0 появилась возможность передавать опции в пресеты, что сделало их конфигурацию более гибкой. В августе, с выходом версии 6.14.0, были представлены пресеты для стандарта ES2017 (включая поддержку async/await) и latest, который объединял все актуальные на тот момент годовые пресеты (ES2015, ES2016, ES2017)[11].
В августе 2016 года был представлен Babili (позже переименованный в babel-minify) — минификатор кода, основанный на плагинной архитектуре Babel. Это позволило использовать инструмент не только для компиляции, но и для оптимизации размера JavaScript-кода.
Ключевым событием года стал выпуск в сентябре babel-preset-env. Этот пресет кардинально изменил подход к настройке, позволив автоматически определять необходимые плагины и полифиллы на основе списка целевых браузеров или сред выполнения (например, определённой версии Node.js). Впоследствии он заменил собой пресеты, ориентированные на конкретный год (такие как `es2015`, `es2016` и `latest`), и стал рекомендуемым способом конфигурации Babel[12].
2017 год стал для проекта периодом планирования и разработки следующей крупной версии — Babel 7[13]. Хотя работа над обновлением началась ещё в феврале, ключевые изменения были официально анонсированы 12 сентября 2017 года в публикации «Planning for 7.0» («Планирование версии 7.0»)[14].
Основные анонсированные нововведения включали[13][14]:
- Переход на пространство имён @babel: перенос всех официальных пакетов в npm-скоуп `@babel` (например, `babel-core` становился `@babel/core`);
- Поддержка TypeScript: возможность компиляции кода на TypeScript с помощью нового пресета `@babel/preset-typescript`;
- Новый файл конфигурации: введение `babel.config.js` для централизованной настройки, решающего проблемы с конфигурацией в монорепозиториях;
- Отказ от годовых и экспериментальных пресетов: прекращение поддержки пресетов `preset-es2015`, `preset-es2017` и `stage-x` в пользу универсального `@babel/preset-env`;
- Утилита для обновления: создание инструмента `babel-upgrade` для автоматизации миграции проектов на новую версию;
- Повышение производительности: значительное внимание было уделено оптимизации скорости сборки;
Таким образом, 2017 год прошёл под знаком подготовки к масштабному обновлению, которое заложило основу для релиза Babel 7 в 2018 году.
27 августа 2018 года, после двух лет разработки, состоялся релиз Babel 7. Это обновление стало результатом работы, включившей около 4000 коммитов и более 50 предварительных версий. Babel 7 представил множество архитектурных улучшений и новых возможностей:
- Поддержка TypeScript: Появилась нативная возможность компиляции кода на TypeScript с помощью нового пресета `@babel/preset-typescript`. Это нововведение стало результатом сотрудничества с командой разработчиков TypeScript;
- Пространство имён @babel: Все официальные пакеты были перенесены в npm-скоуп `@babel` (например, `babel-core` стал `@babel/core`), что улучшило управление зависимостями;
- Новый файл конфигурации: Был представлен файл `babel.config.js`, который решил проблемы с настройкой в монорепозиториях и сложных проектах;
- Отказ от годовых и экспериментальных пресетов: Была прекращена поддержка пресетов, привязанных к году стандарта (`preset-es2015`, `preset-es2017`), и экспериментальных пресетов (`stage-x`). Основным инструментом для настройки стал `@babel/preset-env`;
- Утилита для обновления: Для упрощения перехода с 6-й версии была создана утилита `babel-upgrade`, автоматизирующая обновление конфигурационных файлов и зависимостей;
- Повышение производительности: Скорость сборки была значительно увеличена благодаря оптимизации кода и интеграции патчей от команды движка V8;
- Прекращение поддержки старых версий Node.js: Была прекращена поддержка версий Node.js 0.10, 0.12, 4 и 5;
- Поддержка JSX Fragments и макросов: Была добавлена поддержка синтаксиса фрагментов React и представлена система макросов.
В 2019 году команда Babel выпустила несколько значительных обновлений (с версии 7.4.0 по 7.7.0), добавив поддержку новых возможностей JavaScript и TypeScript, а также улучшив существующие инструменты[15].
Babel 7.4.0 (март 2019)
- Одним из главных изменений стал переход на core-js 3. В связи с этим пакет @babel/polyfill был объявлен устаревшим в пользу прямого импорта core-js/stable и regenerator-runtime/runtime[16];
- Была добавлена поддержка статических приватных методов в классах, предложения по частичному применению функций и обеспечена совместимость с TypeScript 3.4[17].
Babel 7.5.0 (июль 2019)
- Выпущен официальный плагин для динамического import(), который также был включён по умолчанию в @babel/preset-env[18];
- Добавлена экспериментальная поддержка пространств имён (namespace) из TypeScript[18].
Babel 7.6.0 (сентябрь 2019)
- Добавлена поддержка приватных статических геттеров и сеттеров[19].
Babel 7.7.0 (ноябрь 2019)
- В парсер была добавлена поддержка top-level await[15];
- Реализована поддержка возможностей TypeScript 3.7, включая опциональные цепочки (?.) и оператор нулевого слияния (??)[15];
- Добавлена поддержка новых форматов файлов конфигурации, таких как babel.config.json[15];
- Потребление памяти было снижено на 20 % по сравнению с предыдущей версией[15].
В 2020 году развитие Babel было сосредоточено на интеграции стандарта ES2020 и улучшении существующих инструментов. В январе вышел Babel 7.8.0, который по умолчанию включил в @babel/preset-env поддержку возможностей ES2020, таких как опциональные цепочки (?.), оператор нулевого слияния (??) и динамический import()[20]. В марте состоялся релиз Babel 7.9.0, который представил новый JSX-трансформер, разработанный в сотрудничестве с командой React, и добавил поддержку TypeScript 3.8[21].
В течение года началась активная подготовка к следующей мажорной версии. В январе 2020 года команда проекта официально объявила о начале работы над Babel 8[20], а для отслеживания планируемых критических изменений была создана специальная задача на GitHub[22].
В 2021 году развитие Babel было сосредоточено на поддержке новых возможностей языка, достигших финальных стадий стандартизации, и улучшении совместимости с экосистемой.
Babel 7.13.0, выпущенный в феврале 2021 года, добавил экспериментальную поддержку предложения по неизменяемым структурам данных Records and Tuples, а также представил новую опцию `targets` на верхнем уровне конфигурации, которая позволила плагинам получать информацию о целевых средах[23].
В апреле состоялся релиз Babel 7.14.0, в котором были по умолчанию включены плагины для полей классов и приватных методов, поскольку эти возможности достигли 4-й стадии в комитете TC39[24]. Обновление также обеспечило поддержку TypeScript 4.3 и добавило опцию `importInterop: «node»` для упрощения создания двойных ESM/CJS модулей[24].
Babel 7.15.0 (июль 2021) добавил поддержку «Hack-style» синтаксиса для предложения по оператору конвейера (pipeline operator), `const enums` из TypeScript и включил Rhino в список целевых сред выполнения[25].
В октябре вышел Babel 7.16.0, который по умолчанию включил поддержку статических блоков инициализации классов (static {}), также достигших 4-й стадии[26]. Кроме того, была обеспечена совместимость с TypeScript 4.5 и ESLint 8, а также добавлена поддержка нового варианта предложения по оператору конвейера[26]. В анонсе этого релиза команда проекта также обратилась к сообществу с призывом о финансовой поддержке через Open Collective и GitHub Sponsors для обеспечения дальнейшего развития инструмента[26].
В 2022 году развитие Babel было сосредоточено на поддержке обновлённого предложения по декораторам, улучшении совместимости с TypeScript и расширении списка целевых сред выполнения. В течение года было выпущено четыре значимых обновления.
Babel 7.17.0 (февраль 2022) Этот релиз добавил поддержку обновлённой версии предложения по декораторам («2021-12»), которая включала возможность декорирования приватных элементов класса и новую конструкцию «class auto accessors»[27]. Также была реализована поддержка флага v для регулярных выражений и представлена экспериментальная реализация @babel/register с поддержкой файлов конфигурации .mjs[27];
Babel 7.18.0 (май 2022) Основное внимание в этом обновлении было уделено полной поддержке предложения по деструктуризации приватных полей и совместимости с TypeScript 4.7[28]. Кроме того, начиная с этой версии, пакет regenerator-runtime начал автоматически встраиваться при необходимости, что избавило разработчиков от его ручного импорта[28];
Babel 7.19.0 (сентябрь 2022) Главным событием выпуска стало обновление реализации декораторов до версии «2022-03» после того, как предложение достигло 3-й стадии в комитете TC39[29]. Это обновление включало критические изменения, такие как переименование метода initialize в init[29];
Babel 7.20.0 (октябрь 2022) Последний крупный релиз года принёс поддержку оператора satisfies из TypeScript 4.9 и добавил Deno в качестве целевой среды выполнения в @babel/preset-env[30]. Также была выпущена новая мажорная версия babel-loader 9.0, в которой прекратилась поддержка Webpack < 5 и Node.js < 14.15[30].
В 2023 году развитие Babel было сосредоточено на поддержке новых экспериментальных возможностей JavaScript и подготовке к следующей мажорной версии. Ключевым событием года стал выпуск Babel 7.23.0 в сентябре, который добавил поддержку нескольких предложений TC39, находящихся на 3-й стадии, включая метаданные декораторов (Decorator Metadata), новые возможности импорта («Source Phase Imports» и «Deferred Import Evaluation»), присваивание в опциональных цепочках, а также совместимость с TypeScript 5.2[31]. Одновременно с этим релизом была анонсирована первая альфа-версия Babel 8[31].
В течение года также вышли корректирующие релизы, включая Babel 7.23.3 в ноябре, который содержал улучшения производительности для пакета @babel/generator и исправления ошибок[32]. В июле состоялся выпуск babel-loader 9.1.3[33]. В октябре была раскрыта информация об уязвимости (CVE-2023-45133), связанной с возможностью выполнения произвольного кода при компиляции специально созданного вредоносного файла[34].
В 2024 году команда разработчиков Babel выпустила несколько обновлений, добавив поддержку новых возможностей ECMAScript и улучшив существующие функции. Ключевые события были связаны с релизами версий 7.24.0, 7.25.0 и 7.26.0.
Babel 7.24.0 (28 февраля 2024) Этот релиз сфокусировался на обновлении декораторов и добавлении поддержки импорта JSON-модулей. Реализация декораторов была приведена в соответствие с последней версией предложения, находящегося на 3-й стадии в TC39, а также была добавлена поддержка импорта файлов .json с использованием синтаксиса import ... with { type: "json" }[35]. Кроме того, была внедрена экспериментальная опция для использования парсера из движка Hermes для кода с аннотациями типов Flow[35];
Babel 7.25.0 (26 июля 2024) В этом обновлении в @babel/preset-env по умолчанию была добавлена поддержка одноимённых именованных групп захвата в регулярных выражениях. Также была улучшена поддержка компиляции импортов JSON-модулей в формат CommonJS и устранена ошибка, связанная с полями классов при компиляции для браузера Safari[36];
Babel 7.26.0 (25 октября 2024) Последний значимый релиз года включил по умолчанию поддержку двух предложений, достигших статуса стандарта ECMAScript: атрибутов импорта (import attributes) и встроенных модификаторов регулярных выражений. Также была добавлена возможность парсинга перечислений (enums) языка Flow и реализована поддержка асинхронных хуков pre и post для плагинов[37].
На протяжении 2024 года также продолжалась работа над следующей мажорной версией, Babel 8, бета-версия которой стала доступна для тестирования.
В мае 2025 года команда проекта объявила о выпуске Babel 8 Beta, что стало важной вехой после почти двух лет с момента выхода первой альфа-версии[38][39]. Основные изменения в этой версии включают переход на ESM-модули (Babel 8 поставляется как пакет, работающий только с ESM) и устранение значительного объёма технического долга, накопившегося за время существования седьмой версии[38]. Команда также анонсировала планы по совместной работе с ключевыми проектами экосистемы для обеспечения плавного перехода на новую версию перед её стабильным релизом[38].
Выпуск бета-версии произошёл на фоне продолжающихся в сообществе дискуссий о роли и необходимости транспилятора (англ. transpiler) в современной веб-разработке. Несмотря на то, что большинство современных браузеров к 2025 году поддерживают стандарт ES2020+ «из коробки», Babel сохраняет свою актуальность по нескольким причинам[40]:
- Поддержка устаревших браузеров: остаётся востребованной в проектах, требующих широкой совместимости;
- Использование экспериментальных возможностей: позволяет разработчикам применять предложения TC39, ещё не вошедшие в стандарт[40];
- Транспиляция JSX: является ключевым инструментом для проектов, использующих React.
В то же время отмечается, что в некоторых сценариях Babel может замедлять время сборки, а в качестве более производительных альтернатив для транспиляции рассматриваются такие инструменты, как SWC и esbuild[40].
Типы и виды
- Внутренние компоненты процесса
- Парсер (@babel/parser) — превращает исходный текст в абстрактное синтаксическое дерево (AST)[41];
- Трансформатор (@babel/traverse + плагины/пресеты) — обходит AST и вносит изменения согласно правилам преобразования[42];
- Генератор (@babel/generator) — формирует финальный JavaScript-код и при необходимости карты источников[41].
- Платформы/способы использования
- @babel/cli — командная строка для пакетной компиляции файлов;
- @babel/node — оболочка Node.js, компилирующая скрипты «на лету»[43];
- @babel/standalone — сборка для использования прямо в браузере или в не-Node-средах;
- Он-лайн REPL — интерактивная песочница, позволяющая экспериментировать с кодом и немедленно видеть результат.
Этапы работы
1. Планирование и конфигурация — определяются целевые браузеры/среды, выбираются пресеты и плагины, создаётся конфигурация (.babelrc, babel.config.js) либо файл .browserslistrc[41];
2. Сбор и обработка исходных файлов — бандлер или CLI находят файлы, подгружают и объединяют конфигурацию Babel[42];
3. Парсинг — @babel/parser токенизирует код и строит AST[41];
4. Трансформация — плагины обходят AST, заменяя современный синтаксис на совместимый либо добавляя оптимизации[42];
5. Генерация кода — @babel/generator выводит JavaScript-файл и, при необходимости, карты источников;
6. Распространение — результирующий код доставляется пользователям через npm-пакеты, CDN (UNPKG, jsDelivr) или собирается бандлером (Webpack, Rollup, Parcel)[44];
7. Обратная связь — ошибки и предложения фиксируются в GitHub Issues, обсуждаются в GitHub Discussions и Slack-канале сообщества Babel[45].
Сравнение и отличия от смежной / похожей технологии
Появление высокопроизводительных транспиляторов, таких как SWC (написан на Rust) и esbuild (написан на Go), усилило конкуренцию в области транспиляции JavaScript. Несмотря на то, что эти инструменты значительно превосходят Babel в скорости, он сохраняет свою актуальность к 2025 году благодаря гибкости и зрелой экосистеме. Ключевые различия заключаются в следующем:
- Скорость: SWC и esbuild компилируют код значительно быстрее за счёт реализации на низкоуровневых языках. Babel, написанный на JavaScript, может замедлять время сборки в крупных проектах;
- Гибкость и экосистема: Babel обладает обширной экосистемой плагинов, что позволяет применять экспериментальные функции TC39, ещё не вошедшие в стандарт, или выполнять сложные трансформации кода (codemods). Кроме того, он остаётся ключевым инструментом для транспиляции JSX в проектах, использующих React. Альтернативы пока более ограничены в возможностях расширения;
- Совместимость и полифиллинг: Важнейшим преимуществом Babel остаётся его способность обеспечивать глубокую обратную совместимость. С помощью пресета @babel/preset-env и интеграции с core-js он автоматически добавляет необходимые полифиллы для поддержки устаревших браузеров. Конкуренты же в основном концентрируются на синтаксических трансформациях.
- Возможность сразу использовать новые возможности ECMAScript без ожидания их поддержки браузерами[3];
- Автоматический полифиллинг недостающих API (Promise, Array.from и т. д.)[3];
- Плагинно-пресетная архитектура, позволяющая расширять функциональность и писать собственные преобразователи[2];
- Интеграция с популярными инструментами сборки (Webpack, Rollup, Parcel) и тестирования (Jest, Mocha)[42];
- Поддержка JSX и компиляция TypeScript без проверки типов[3].
Сферы применения
- SPA-фреймворки (React, Vue.js, Angular) — трансформация JSX/TSX и современного синтаксиса;
- Разработка универсальных npm-библиотек, требующих совместимости c Node.js и браузерами разных поколений;
- Серверный код на Node.js старых версий либо с экспериментальными возможностями языка;
- Codemod-скрипты для массового рефакторинга крупных кодовых баз;
- Образовательные и демонстрационные площадки, использующие @babel/standalone для мгновенной компиляции кода в браузере.
Инструменты для настройки / разработки / использования
- @babel/cli — пакетная компиляция директорий и файлов;
- @babel/node — запуск скриптов Node.js с транспиляцией «на лету»; не рекомендуется в production[43];
- @babel/standalone — скрипт, подключаемый через <script> для компиляции в браузере;
- Он-лайн REPL (repl.babeljs.io) — визуальное изучение работы плагинов и пресетов.
- Интеграционные пакеты
- babel-loader для Webpack;
- @rollup/plugin-babel для Rollup;
- Встроенная поддержка в Parcel.
- Инфраструктура качества кода
- Каналы обновлений
- Atom-фид релизов: https://github.com/babel/babel/releases.atom;
- Блог Babel: https://babeljs.io/blog;
- Slack-канал сообщества (invite — slack.babeljs.io)[45].
Примечания
- ↑ 1 2 3 Rome with Sebastian McKenzie. Babel Podcast. Дата обращения: 21 мая 2024.
- ↑ 1 2 3 Babel documentation. babeljs.io. Дата обращения: 5 июля 2025.
- ↑ 1 2 3 4 What is Babel? GeeksforGeeks. Дата обращения: 5 июля 2025.
- ↑ 1 2 What is Babel.js and why do we still need it? Medium. Дата обращения: 5 июля 2025.
- ↑ Babel — самый популярный компилятор JavaScript. Как он устроен? Habr (1 сентября 2020). Дата обращения: 29 июля 2025.
- ↑ 1 2 Not Born to Die. Babel (15 февраля 2015). Дата обращения: 29 июля 2025.
- ↑ 1 2 5.0.0 Released. Babel (31 марта 2015). Дата обращения: 29 июля 2025.
- ↑ 1 2 3 The State of Babel. Babel (7 декабря 2016). Дата обращения: 29 июля 2025.
- ↑ 1 2 6.0.0 Released. Babel (29 октября 2015). Дата обращения: 29 июля 2025.
- ↑ Babel 6: First look at the new transpiler. DEV Community. Дата обращения: 29 июля 2025.
- ↑ 6.14.0 Released. Babel (24 августа 2016). Дата обращения: 29 июля 2025.
- ↑ Upgrade to Babel 7. babeljs.cn. Дата обращения: 29 июля 2025.
- ↑ 1 2 Babel 7: долгожданный релиз популярного компилятора JavaScript. Tproger. Дата обращения: 29 июля 2025.
- ↑ 1 2 Planning for 7.0. Babel (12 сентября 2017). Дата обращения: 29 июля 2025.
- ↑ 1 2 3 4 5 7.7.0 Released: Smaller preset-env bundles and better TypeScript support. Babel (5 ноября 2019). Дата обращения: 29 июля 2025.
- ↑ Updating to Babel 7.4. The Basement. Дата обращения: 29 июля 2025.
- ↑ 7.4.0 Released: core-js 3, static private methods and partial application. Babel (19 марта 2019). Дата обращения: 29 июля 2025.
- ↑ 1 2 7.5.0 Released: dynamic import() and F# pipelines. Babel (3 июля 2019). Дата обращения: 29 июля 2025.
- ↑ 7.6.0 Released: Private static accessors and V8 intrinsics. Babel (5 сентября 2019). Дата обращения: 29 июля 2025.
- ↑ 1 2 7.8.0 Released: ES2020, .babelrc.json, and more! Babel (11 января 2020). Дата обращения: 29 июля 2025.
- ↑ 7.9.0 Released: New JSX Transform, TS 3.8, and more! Babel (16 марта 2020). Дата обращения: 29 июля 2025.
- ↑ Babel 8 Tracking Issue. GitHub. Дата обращения: 29 июля 2025.
- ↑ 7.13.0 Released: Records and Tuples, Top-Level targets, and more! Babel (22 февраля 2021). Дата обращения: 29 июля 2025.
- ↑ 1 2 7.14.0 Released: Class features enabled by default, TS 4.3, and dual packages. Babel (29 апреля 2021). Дата обращения: 29 июля 2025.
- ↑ 7.24.0 Released: Decorator Metadata and JSON modules. babeljs.cn (28 февраля 2024). Дата обращения: 29 июля 2025.
- ↑ 1 2 3 7.16.0 Released: class static blocks and TypeScript 4.5. Babel (29 октября 2021). Дата обращения: 29 июля 2025.
- ↑ 1 2 7.17.0 Released: Decorators updates and new polyfills. Babel (2 февраля 2022). Дата обращения: 29 июля 2025.
- ↑ 1 2 7.18.0 Released: Destructuring private fields and TypeScript 4.7. Babel (19 мая 2022). Дата обращения: 29 июля 2025.
- ↑ 1 2 7.19.0 Released: Stage 3 Decorators and more! Babel (5 сентября 2022). Дата обращения: 29 июля 2025.
- ↑ 1 2 7.20.0 Released: Deno target and TypeScript 4.9. Babel (27 октября 2022). Дата обращения: 29 июля 2025.
- ↑ 1 2 7.23.0 Released: Decorator Metadata and Deferred Import Evaluation. babeljs.cn (25 сентября 2023). Дата обращения: 29 июля 2025.
- ↑ Release v7.23.3 · babel/babel. GitClear. Дата обращения: 29 июля 2025.
- ↑ Releases · babel/babel-loader. GitHub. Дата обращения: 29 июля 2025.
- ↑ Arbitrary code execution when compiling specifically crafted malicious code. GitHub. Дата обращения: 29 июля 2025.
- ↑ 1 2 7.24.0 Released: Decorator Metadata and JSON modules. Babel (28 февраля 2024). Дата обращения: 29 июля 2025.
- ↑ 7.25.0 Released: Safari bugfixes and duplicated named capturing groups. babeljs.cn (26 июля 2024). Дата обращения: 29 июля 2025.
- ↑ 7.26.0 Released: import attributes, Flow enums and async hooks. Babel (25 октября 2024). Дата обращения: 29 июля 2025.
- ↑ 1 2 3 Babel 8 Beta. Babel (30 мая 2025). Дата обращения: 29 июля 2025.
- ↑ Release v8.0.0-beta.2 · babel/babel. GitClear. Дата обращения: 29 июля 2025.
- ↑ 1 2 3 The Role of Babel in Modern JavaScript Development. 618media. Дата обращения: 29 июля 2025.
- ↑ 1 2 3 4 What is Babel and how does it work. Medium. Дата обращения: 5 июля 2025.
- ↑ 1 2 3 4 Understanding Babel — the JavaScript compiler. DEV Community. Дата обращения: 5 июля 2025.
- ↑ 1 2 @babel/node documentation. babeljs.io. Дата обращения: 5 июля 2025.
- ↑ Publishing components on npm using Babel and Webpack. Medium. Дата обращения: 5 июля 2025.
- ↑ 1 2 babel/babel — GitHub repository. GitHub. Дата обращения: 5 июля 2025.
- ↑ Babel, SWC & esbuild — overview of current JavaScript transpilers. sgalinski.de. Дата обращения: 5 июля 2025.