2017-02-24 08:27:43 -05:00

1.6 KiB

Contributing

Adding a new plugin to support (when approved in the next ECMAScript version)

Update pluginFeatures.js

Example:

In you were going to add ** which is in ES2016:

Find the relevant entries on compat-table:

exponentiation (**) operator

Find the corresponding babel plugin:

transform-exponentiation-operator

Add add them in this structure:

// es2016
"transform-exponentiation-operator": {
  features: [
    "exponentiation (**) operator",
  ],
},

Update plugins.json

Until compat-table is a standalone npm module for data we are using the git url

"compat-table": "github:kangax/compat-table#gh-pages",

So we update and then run npm run build-data. If there are no changes, then plugins.json will be the same.

Writing Tests

General

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.

Testing the debug option

Testing 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:

  • Add a options.json file (just as the other tests, this is essentially a .babelrc) with the desired test configuration (required)
  • Add a 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.