Are we ESM yet?

ESM adoption across high-impact npm packages

33% of high-impact npm packages are ESM-ready

Last updated: 2026-02-23

Adoption breakdown

ESM 13% dual 20% faux 10% CJS 57%

Trend over time

ESM dual faux CJS

ESM-ready = ESM + dual packages. Data from 2021 to present.

Glossary

ESM
ECMAScript Modules. Package has `type: 'module'` or `.mjs` entry point. Native `import`/`export` in Node.js.
dual
Package provides both ESM and CJS via `exports` conditions (`import` and `require`). Works in either environment.
faux
Legacy "module" field for old bundlers (e.g. webpack). Not true Node ESM; no `type: 'module'` or proper `exports`.
CJS
CommonJS. Default for npm packages. Uses `require()`/`module.exports`.