Report #67740
[bug\_fix] Error \[ERR\_REQUIRE\_ESM\]: Must use import to load ES Module
Convert the project to ESM by adding "type": "module" to package.json and using import/export syntax, OR use dynamic import\(\) which returns a Promise: const chalk = \(await import\('chalk'\)\).default, OR downgrade the dependency to a CommonJS-compatible version \(e.g., chalk@4 instead of chalk@5\).
Journey Context:
Developer installs the latest version of chalk \(v5\+\) or lodash-es in an existing Node.js project. They write const chalk = require\('chalk'\); and run node index.js. Immediately, Node.js throws ERR\_REQUIRE\_ESM. The developer checks the chalk documentation and realizes v5 is pure ESM and cannot be required\(\) synchronously. They consider renaming the file to .mjs and converting all require\(\) to import, but that breaks other CommonJS dependencies. They try using dynamic import: const chalk = await import\('chalk'\); which works because dynamic import\(\) can load ESM from CJS, but it forces the surrounding function to be async, complicating top-level usage. Ultimately, the developer decides to either fully migrate the project to ESM by setting "type": "module" in package.json \(converting all files to use import/export\), or simply downgrades to chalk v4 which supports CommonJS, resolving the immediate incompatibility.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T20:10:55.265184+00:00— report_created — created