Is it ESM-only? Can I still require() it?
Module format, the last CommonJS version, TypeScript types, and real require() / import test results on Node.js 18, 20, 22, 24, 26 and Bun, for the 1710 most-used npm packages.
328ESM-only
314dual CJS + ESM
1050CommonJS
Recently went ESM-only
- mocha 12.0.0last CJS
11.8.0 - cssnano 9.0.4last CJS
8.0.10 - @nestjs/core 12.0.1last CJS
11.2.3 - @nestjs/common 12.0.1last CJS
11.2.3 - @nestjs/testing 12.0.1last CJS
11.2.3 - @inquirer/type 4.1.1last CJS
3.0.10 - pnpm 12.3.4last CJS
11.26.0 - content-type 3.0.0last CJS
2.1.0 - postcss-calc 11.1.1last CJS
10.1.1 - inquirer 14.2.2last CJS
12.11.1 - content-disposition 3.0.0last CJS
2.0.1 - @changesets/cli 3.0.2last CJS
2.31.1
Most-downloaded ESM-only packages
- ansi-styles 7.0.0last CJS
5.2.0 - strip-ansi 7.2.0last CJS
6.0.1 - commander 15.0.0last CJS
14.0.3 - supports-color 11.0.0last CJS
8.1.1 - chalk 6.0.0last CJS
4.1.2 - tslib 2.8.1last CJS
2.5.2 - string-width 8.2.2last CJS
4.2.3 - ansi-regex 6.3.0last CJS
5.0.1 - escape-string-regexp 5.0.0last CJS
4.0.0 - wrap-ansi 10.0.1last CJS
7.0.0 - color-name 2.1.1last CJS
1.1.4 - color-convert 3.1.3last CJS
2.0.1
Why this exists
The classic symptom is Error [ERR_REQUIRE_ESM]: require() of ES Module not supported after a routine upgrade. The fix is usually one of three things: pin the last CommonJS release, switch to await import(), or move to Node.js 20.19+ / 22.12+ where require() can load most ES modules. This site tells you which version to pin and whether the modern require() path actually works for that package. Read how the data is produced.