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