canirequire

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

All 328 ESM-only packages →

Most-downloaded ESM-only packages

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.