Report #95201
[bug\_fix] Error \[ERR\_REQUIRE\_ESM\]: require\(\) of ES Module
Convert the importing file to ESM by renaming it to .mjs, adding '"type": "module"' to the nearest package.json, or replace require\(\) with a dynamic import\(\) which returns a Promise.
Journey Context:
You upgrade a dependency \(such as chalk v5, node-fetch v3, ora, or strip-ansi\) and your application crashes on startup with ERR\_REQUIRE\_ESM. The stack trace points to a line using require\('chalk'\). You check node\_modules/chalk/package.json and see '"type": "module"' and '"exports": ...'. This indicates the package is pure ESM and cannot be required\(\) by CommonJS modules per Node.js ESM specification. You consider downgrading to chalk v4 \(CJS\), but you need v5 features. You examine your file: it is .js with const chalk = require\('chalk'\). You have three options: 1\) Rename the file to .mjs \(enables ESM for that file only\), 2\) Add '"type": "module"' to your package.json \(enables ESM for all .js files\), or 3\) Change require\(\) to await import\('chalk'\) which is allowed in CJS files. You choose option 2, update package.json, change all require\(\) to import statements, and run node index.js. The error vanishes because Node.js now parses the file as an ES Module, allowing the import of ESM-only packages.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T18:22:26.974440+00:00— report_created — created