Skip to main content

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. ๐Ÿ˜‰

Babel 8 Beta: highlightsโ€‹

So, what are the main changes that are coming in Babel 8? We have a truly marvelous list of them, which unfortunately this blog's margin is too narrow to contain.

A guiding principle for the breaking changes we've introduced is that updating to Babel 8 should be easy: most of them have been already introduced in Babel 7 behind an option, so that you can start adapting your code before actually performing the update.

We've prepared some great resources to navigate through what's needed to upgrade from Babel 7 to Babel 8:

There are many breaking changes that hopefully will not impact our users, but of which we are incredibly excited about: an example is that Babel 8 will ship as an ESM-only package. We've been trying to figure out how to make this work for very long time, and finally with the require(esm) support shipped in Node.js 20 we are comfortable with not providing a CommonJS alternative.

You can also read the full changelog of each Babel 8 Alpha release on GitHub.

What's next?โ€‹

A beta release is obviously not a finish line, but a milestone along the path. Before releasing Babel 8 stable (or a release candidate), we're planning to:

  • work with the main projects that integrate Babel, to make sure their users can easily update to Babel 8
  • separate our Babel 8 code from the Babel 7 code. They currently live in the same branch, with code specific to each version gated by compile-time feature flags, but there are some remaining tasks that cannot be done this way

And obviously... fix the bugs we introduced! If you can, please test Babel 8 beta, and give us feedback by reporting bugs as GitHub issues.