babel-preset-latest-node
babel preset latest for node 14 (Current), node 12 (Active LTS) node 10 (Maintenance LTS)
babel 7
Since v2, this package requires @babel/core@^7.0.0
. If you use babel 6, you can still use the version "1.0.0" of this package. If you want to migrate, you can read the announcement and the official migration guide.
Alternatives
-
@babel/preset-env, especially
targets.node
Options
-
target
:10
,10.13
,12
,12.10
,14
or'current'
(process.versions.node
) -
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" -
es2019
- Enable es2019 features (Enabled by default) -
es2020
- Enable es2020 features (Enabled by default) -
shippedProposals
- Enable features in stages but already available in recent node version (Enabled by default)
Compatibility Table
Feature | Node 10 | Node 10.13 | Node 12 | Node 14 | Node 14.8 |
---|---|---|---|---|---|
ES2015 |
|||||
transform-modules-commonjs | flag | flag | flag | with .mjs | with .mjs |
ES2019 |
|||||
syntax-optional-catch-binding | flag | yes | yes | yes | yes |
json-strings | yes | yes | yes | yes | yes |
ES2020 |
|||||
nullish-coalescing-operator | no | no | no | yes | yes |
optional-chaining | no | no | no | yes | yes |
Shipped Proposals |
|||||
numeric-separator | no | no | no | yes | yes |
top-level-await | no | no | no | no | yes |
Note that top level await is syntax only and is only available for supported versions.
Install
npm install --save-dev @babel/core babel-preset-latest-node
yarn add --dev @babel/core babel-preset-latest-node
Usage
.babelrc
Via .babelrc
{
"presets": ["latest-node"]
}
{
"presets": [["latest-node", { "target": "current" }]]
}
Via CLI
babel script.js --presets latest-node
Via Node API
require('babel-core').transform('code', {
presets: [require('babel-preset-latest-node')],
});
require('babel-core').transform('code', {
presets: [[require('babel-preset-latest-node'), { target: 'current' }]],
});