In Babel 6, we had `@babel/runtime` which _always_ uses `core-js` in its helpers, meaning that anyone who wants to use our helpers in a centralized modular way had to also use core-js, which isn't always ideal.
Early in the Babel 7 alpha, we added a `useBuiltins: true` option that would use separate copies of the helpers that would skip loading `core-js`, but this _still_ requires users to have an indirect npm dependency on `core-js`.
This PR splits our setup into two separate runtimes:
* ```
'plugins': [
['transform-runtime'],
]
```
with `npm install --save @babel/runtime` that just includes our helpers, and relies on users to globally polyfill any APIs they need.
* ```
'plugins': [
['transform-runtime', { corejs: 2 }],
]
```
with `npm install --save @babel/runtime-corejs2` that includes everything `@babel/runtime` does, but also includes a passthrough API for `corejs@2.x` and rewrites all of the helper modules to reference `core-js`.
The compiler for writing next generation JavaScript.
Supporting Babel
Babel is a community-driven project used by many companies and projects, and is maintained by a group of volunteers. If you'd like to help support the future of the project, please consider:
- Giving developer time on the project. (Message us on Twitter or Slack for guidance!)
- Giving funds by becoming a sponsor (see below)!
Open Collective Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]
Patreon Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]
Bronze
Intro
Babel is a tool that helps you write code in the latest version of JavaScript. When your supported environments don't support certain features natively, Babel will help you compile those features down to a supported version.
In
// ES2015 arrow function
[1, 2, 3].map((n) => n + 1);
Out
[1, 2, 3].map(function(n) {
return n + 1;
});
Try it out at our REPL.
FAQ
Who maintains Babel?
Mostly a handful of volunteers! Please check out our team page!
Looking for support?
For questions and support please visit join our Slack Community (you can sign-up here for an invite), ask a question on Stack Overflow, or ping us on Twitter.
Is there a Babel song?
I'm so glad you asked: Hallelujah —— In Praise of Babel by @angus-c, audio version by @swyx. Tweet us your recordings!
Where are the docs?
Check out our website: babeljs.io, and report issues/features at babel/website.
Want to report a bug or request a feature?
Please read through our CONTRIBUTING.md and fill out the issue template at babel/issues!
Want to contribute to Babel?
Check out our CONTRIBUTING.md to get started with setting up the repo.
- If you have already joined Slack, join our #development channel and say hi!
- Check out the issues with the good first issue and help wanted label. We suggest also looking at the closed ones to get a sense of the kinds of issues you can tackle.
- Our discussions/notes/roadmap: babel/notes
- Our progress on TC39 proposals: babel/proposals
How is the repo structured?
The Babel repo is managed as a monorepo that is composed of many npm packages.

