antfu/are-we-esm

Are we fully ESM yet?

TypeScript

331

22 commits

updated Feb 12, 2025

See the code

README

Deprecated: use node-modules-inspector instead.


are-we-esm

npm version npm downloads bundle JSDocs License

CLI to check your project's ESM support status

Screenshot

Usage

Run the following command in your project root:

pnpx are-we-esm

[!NOTE] Only works with pnpm projects

Options

  • --simple - Simplified the module type to CJS and ESM. Consider DUAL as ESM, FAUX as CJS (default: false)
  • --prod - Check only the production dependencies
  • --dev - Check only the development dependencies
  • --exclude - Exclude packages from the check, e.g. --exclude="eslint,eslint-*,@eslint/*"
  • --all - Print all packages, including those that are ESM compatible (default: false)
  • --list - Print the flat list of packages, instead of tree (default: false)
  • --depth - Limit the depth search of the tree (default: 25)

TODOs

  • Add progress bar
  • Cache the result to disk
  • Improve --prod flag by traversing the tree
  • Support exclude list
  • Summary how top-level packages are contribute to ESM support
  • Web UI

Sponsors

Credits

Thanks to the following projects and their authors for inspiration:

License

MIT License © 2025-PRESENT Anthony Fu

Contributors

antfu

20 commits

gweesin

1 commits

pacexy

1 commits

antfu/are-we-esm

Are we fully ESM yet?

TypeScript

331

22 commits

updated Feb 12, 2025

See the code

README

Deprecated: use node-modules-inspector instead.


are-we-esm

npm version npm downloads bundle JSDocs License

CLI to check your project's ESM support status

Screenshot

Usage

Run the following command in your project root:

pnpx are-we-esm

[!NOTE] Only works with pnpm projects

Options

  • --simple - Simplified the module type to CJS and ESM. Consider DUAL as ESM, FAUX as CJS (default: false)
  • --prod - Check only the production dependencies
  • --dev - Check only the development dependencies
  • --exclude - Exclude packages from the check, e.g. --exclude="eslint,eslint-*,@eslint/*"
  • --all - Print all packages, including those that are ESM compatible (default: false)
  • --list - Print the flat list of packages, instead of tree (default: false)
  • --depth - Limit the depth search of the tree (default: 25)

TODOs

  • Add progress bar
  • Cache the result to disk
  • Improve --prod flag by traversing the tree
  • Support exclude list
  • Summary how top-level packages are contribute to ESM support
  • Web UI

Sponsors

Credits

Thanks to the following projects and their authors for inspiration:

License

MIT License © 2025-PRESENT Anthony Fu

Contributors

antfu

20 commits

gweesin

1 commits

pacexy

1 commits

Languages

TypeScript

98.0%

JavaScript

2.0%