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",
],
},
core-js@2 polyfillingExample:
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@2:
es7.object.values.js
Find required ES version in corejs2-built-in-features.js and add the new feature:
const es = {
//...
"es7.object.values": "Object static methods / Object.values"
}
If you want to transform a new built-in by useBuiltIns: 'usage', add mapping to related core-js modules to this file.
core-js@3 polyfillingJust update the version of core-js-compat in dependencies.
If you want to transform a new built-in by useBuiltIns: 'usage', add mapping to related core-js modules to this file.
If you want to mark a new proposal as shipped, add it to this list.
plugins.jsonUntil compat-table is a standalone npm module for data we are using the git commit in packages/babel-compat-data/scripts/download-compat-table.sh
COMPAT_TABLE_COMMIT=[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.
See general CONTRIBUTING.md.
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.