Skip to content

Use native ESM for dev scripts  #12137

@nicolo-ribaudo

Description

@nicolo-ribaudo

Since we are now only building Babel on Node.js 14 (even if we still test it on Node.js 6), we can use native ECMAScript modules for the build scripts:

  • Top-level scripts
    There are a bunch of scripts/tests in the scripts folder: they can probably all be rewritten to ES modules.
    We can probably add "type": "module" to the top-level package.json, renaming config files (such as .eslintrc.js) to .cjs. Note that we cannot use ES modules for babel.config.js and jest.config.js, because those two files are used to run tests on Node.js 6.

  • babel-types/scripts can be rewritten to ES modules. These files should be renamed to .mjs, to keep the dist @babel/types files with the .js extension (they are CJS modules).

Please note that babel-types/scripts depends on the top-level scripts, so babel-types/scripts must be converted first (it cannot synchronously import an ESM file while still being CJS).

In order to test if your changes are still ok, running yarn (only when you clone the repo) and make build && yarn jest should be enough.

Metadata

Metadata

Assignees

Labels

claimedgood first issueoutdatedA closed issue/PR that is archived due to age. Recommended to make a new issue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions