Babel preset for all envs.
$ npm install --save-dev babel-preset-env
-
targets
- an object of browsers/environment versions to support (ex: chrome, node, etc).
The data for this is currently at: /data/plugins.json and being generated by /scripts/build-data.js using https://kangax.github.io/compat-table.
We would like help to make the data is correct! This just means usage/testing!
Currently: "chrome, edge, firefox, safari, node"
Some node features are >
6.5
-
loose
(boolean) - 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 one of["amd", "umd", "systemjs", "commonjs"]
- Can be
-
debug
(boolean) -console.log
out the targets and plugins being used as well as the version specified in/data/plugins.json
{
"presets": [
["env", {
"targets": {
"chrome": 52
},
"loose": true,
"modules": false
}]
]
}
// src
export class A {}
// default is to run all transforms
{
"presets": [
["env", {}]
]
}
// ...
var A = exports.A = function A() {
_classCallCheck(this, A);
};
// target chrome 52
{
"presets": [
["env", {
"targets": {
"chrome": 52
}
}]
]
}
// ...
class A {}
exports.A = A;
// target chrome 52 with webpack 2/rollup
{
"presets": [
["env", {
"targets": {
"chrome": 52
},
"modules": false
}]
]
}
// ...
export class A {}
Using targets: {
"node": 6.5
}
Using plugins:
module: false
transform-exponentiation-operator {}
transform-async-to-generator {}
syntax-trailing-function-commas {}