plugin-features.jsExample:
If you were going to add ** which is in ES2016:
Find the relevant entries on compat-table:
exponentiation (**) operator
Find the corresponding babel plugin:
@babel/plugin-transform-exponentiation-operator
And add them in this structure:
// es2016
"@babel/plugin-transform-exponentiation-operator": {
features: [
"exponentiation (**) operator",
],
},
built-in-features.jsExample:
In case you want to add Object.values which is in ES2017:
Find the relevant feature and subfeature on compat-table
and split it with /:
Object static methods / Object.values
Find the corresponding module on core-js:
es7.object.values.js
Find required ES version in built-in-features.js and add the new feature:
const es2017 = {
//...
"es7.object.values": "Object static methods / Object.values"
}
plugins.jsonUntil compat-table is a standalone npm module for data we are using the git url
"compat-table": "kangax/compat-table#[latest-commit-hash]",
So we update and then run npm run build-data. If there are no changes, then plugins.json will be the same.
npm test
npm run coverage
All the tests for @babel/preset-env exist in the test/fixtures folder. The
test setup and conventions are exactly the same as testing a Babel plugin, so
please read our documentation on writing tests.
debug optionTesting debug output to stdout is similar. Under the test/debug-fixtures,
create a folder with a descriptive name of your test, and add the following:
options.json file (just as the other tests, this is essentially a
.babelrc) with the desired test configuration (required)stdout.txt file with the expected debug output. For added
convenience, if there is no stdout.txt present, the test runner will
generate one for you.