Report #15373
[bug\_fix] Error \[ERR\_REQUIRE\_ESM\]: require\(\) of ES Module
Convert the importing file to ESM by renaming it to .mjs or adding "type": "module" to package.json and converting require\(\) to import statements. Alternatively, use dynamic import\(\) to load the ESM module asynchronously from CommonJS: const \{default: chalk\} = await import\('chalk'\);
Journey Context:
Developer has an existing CommonJS project \(no "type": "module"\) and tries to npm install chalk@5 \(or node-fetch@3\). The install succeeds, but when running node index.js, it throws ERR\_REQUIRE\_ESM. Developer checks the chalk documentation and realizes v5 is ESM-only. Developer tries to require\(\) it with different syntax, fails. Considers downgrading to chalk@4 \(CJS\), but wants modern features. Tries renaming file to .mjs, but then all other local requires break because they need file extensions. Eventually adds "type": "module" to package.json and converts all require\(\) to import/export syntax throughout the codebase, or wraps the import in an async function using await import\(\) to dynamically load the ESM module from within CJS.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T23:52:57.425624+00:00— report_created — created