Skip to main content

Releasing Babel 8 today: ESM-only, drop ES5 default, and a smooth migration path

· 8 min read

Today we are releasing Babel 8. It's been 8 years since we released Babel 7. And that's not without reason.

Over these past 8 years, the JavaScript ecosystem has changed significantly. In addition to Babel, SWC and Oxc have emerged as alternative JavaScript compilers, and the JavaScript language itself has evolved with new features and proposals (many of which were prototyped and tested in Babel before being standardized!).

You might imagine that Babel became less relevant because of that. But reality begs to differ. Babel has grown from 1.7 million weekly downloads in 2018, to 651 million weekly downloads this week (Jun 2026). Babel has doubled its weekly download counts in the last year.

This usage comes with a huge responsibility to our users. Babel is used in so many build pipelines across the world that even minor breaking changes can cause hundreds of thousands of developers to be blocked from shipping their code. That's why we've not done a major release with breaking changes in 8 years, and why we are taking a very careful approach to Babel 8.

7.29.0 Released: The last Babel 7 minor release

· 4 min read

Babel 7.29.0 is out!

This is the last minor release of Babel 7, as we are getting ready to release Babel 8.0.0. Babel 8.0.0-rc is also out today: go try it out!

This release include support for defining transpilation targets in @babel/standalone through a data-target attribute on <script> elements. It also adds support for the @babel/core async API to @babel/standalone.

Both of these changes are meant to ease the migration from Babel 7 to Babel 8.

You can read the whole changelog on GitHub. If you are already using Babel 8 beta, all the new 7.28.0 features are included in v8.0.0-rc.1.

Announcing Babel 8 Beta

· 3 min read

After almost two years since the first Babel 8 alpha release (8.0.0-alpha.0), we are finally ready.

All the breaking changes we were planning to include in Babel 8 are done, and we have removed a lot of the technical debt we've accumulated over the years and were unable to remove during Babel 7's lifetime.

We now need to test it in real projects to make sure we got everything right. We have been transpiling our own code using Babel 8 since early alpha versions, but one prerelease user is not enough. 😉

7.27.0 Released: better ecosystem alignment

· 3 min read

Babel 7.27.0 is out!

This release doesn't include any significant new feature, but it better aligns Babel's behavior with standard JavaScript and other tools.

The code printer will now also print the correct import attributes syntax by default, rather than expecting its users to explicitly enable an option for it.

We also tweaked the behavior of @babel/preset-typescript's rewriteImportExtensions option, to fix some differences when compared to TypeScript's --rewriteRelativeImportExtensions.

Lastly, we updated our estree compatibility plugin in @babel/parser to generate AccessorProperty nodes for accessor foo = "val" class properties, introduced by the decorators stage 3 proposal. Note that, for legacy compatibility reasons, @babel/parser only generates an ESTree-compatible AST for class features when the classFeatures option of the estree plugin is enabled.

There are multiple changes that may benefit plugin authors: you can read the whole changelog on GitHub.

7.26.0 Released: stage 4 features enabled by default, and a new experimental code printer

· 4 min read

Babel 7.26.0 was just released!

It enables by default support of two ECMAScript proposals that become standard in the last TC39 meeting, import attributes and inline regular expression modifiers, as well as parsing of Flow enums.

Babel now also allows plugins to provide asynchronous pre/post hooks, and has an [experimental mode](TODO: Link) to preserve tokens' positions when generating the transformed output.

You can read the whole changelog on GitHub.

7.23.0 Released: Decorator Metadata and many new `import` features!

· 7 min read

We just released Babel 7.23.0! 🎉

It includes transform support for the Decorator Metadata, Source Phase Import, Deferred Import Evaluation, and Optional Chaining Assignment proposals. We also updated our parser to support the new TypeScript 5.2 version, and added a transform option to let you use the .ts extension within TypeScript imports.

In addition to releasing version 7.23.0, we also recently published the first Babel 8 alpha release!

You can read the whole changelog on GitHub.