Files
ai-course/node_modules/@babel/preset-env/CONTRIBUTING.md
KQL ce6aa207e9 fix: 修复图片路径以适配GitHub Pages base path
- 将所有图片路径从绝对路径改为使用 process.env.PUBLIC_URL
- 修复 HomePage.tsx 中所有图片引用
- 修复 CoursePage.tsx 中所有图片引用
- 确保图片在 GitHub Pages 上正确加载

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 09:24:45 +08:00

3.6 KiB

Contributing

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

Update plugin-features.js

Example:

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",
  ],
},

Update data for core-js@2 polyfilling

Example:

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.

Update data for core-js@3 polyfilling

Just 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.

Update plugins.json

Until 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.

Tests

Running tests

See general CONTRIBUTING.md.

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.