babel-preset-modern-browsers v15.0.2
This preset covers syntax of es2015, es2016, es2017, es2018, es2019 and es2020.
More info in the compatibility table below
babel 7
Since v12, this package requires @babel/core@7.0.0. If you use babel 6, you can still use the version "11.0.1" of this package. If you want to migrate, you can read the announcement and the official migration guide.
Alternatives
- @babel/preset-env, especially
targets.esmodules
If you don't need preset-env, using this package will only install a few dependencies.
Modern browsers
Installation
npm install --save-dev babel-preset-modern-browsers @babel/coreUsage
Add the following line to your .babelrc file:
{
"presets": ["modern-browsers"]
}Options
loose: Enable “loose” transformations for any plugins in this preset that allow them (Disabled by default).modules- Enable transformation of ES6 module syntax to another module type (Enabled by default to "commonjs"). Can be false to not transform modules, or "commonjs"shippedProposals- Enable features in stages but already available in browsers (Enabled by default)
{
presets: [['modern-browsers', { loose: true }]];
}{
presets: [[require('babel-preset-modern-browsers'), { loose: true }]];
}Browserlist
Edge >= 83, Firefox >= 78, FirefoxAndroid >= 78, Chrome >= 80, ChromeAndroid >= 80, Opera >= 67, OperaMobile >= 67, Safari >= 13.1, iOS >= 13.4Compatibility Table
| Feature | Edge | Firefox | Chrome | Opera | Safari |
|---|---|---|---|---|---|
| Shipped Proposals | |||||
| Numeric Separators | |||||
| ↳ syntax-numeric-separator | |||||
| ES2020 | |||||
Optional chaining (?.) | |||||
Nullish Coalescing operator (??) | |||||
| ES2019 | |||||
| Optional catch binding | |||||
| JSON strings | |||||
| ES2018 | |||||
| Object Rest/Spread Properties | |||||
| RegExp Unicode Property Escapes | |||||
| Asynchronous Iterators | |||||
| ES2017 | |||||
| trailing commas in function | |||||
| async function | |||||
| ES2016 | |||||
| exponentiation operator | |||||
| ES2015 | |||||
| Syntax | |||||
| default parameters | |||||
| rest parameters | |||||
| spread | |||||
| computed properties | |||||
| shorthand properties | |||||
for...of | |||||
| template string | |||||
| Regexp sticky | |||||
| Regexp unicode | |||||
| destructuring | |||||
| Unicode Strings | |||||
| Octal/Binary Numbers | |||||
| Bindings | |||||
const | |||||
let | |||||
block-level function declaration | |||||
| Functions | |||||
| arrow functions | |||||
| classes | |||||
| super | |||||
| generators | |||||
| Built-ins | |||||
| typeof Symbol | |||||
| Built-in extensions | |||||
| function name |
Partially Shipped Proposals (Not included)
| Feature | Edge | Firefox | Chrome | Opera | Safari |
|---|---|---|---|---|---|
| Static & Instance Class Fields | |||||
| ↳ proposal-class-properties | |||||
| Private Class Methods | |||||
| ↳ proposal-private-methods |
Release Dates
- Firefox: https://wiki.mozilla.org/RapidRelease/Calendar
- Chrome: https://www.chromium.org/developers/calendar (Version History)
- Safari: https://developer.apple.com/safari/ (Version History)
- Edge: https://developer.microsoft.com/en-us/microsoft-edge/platform/changelog/ (Version History)
Thanks
- Inspired by https://github.com/askmatey/babel-preset-modern
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago