gotchaMajor
package.json type module breaking require() calls
Viewed 0 times
type modulerequireERR_REQUIRE_ESMcreateRequire.cjs.mjsimport.meta.url
nodejs
Error Messages
Problem
Adding type: module to package.json causes all .js files to be ESM. Existing require() calls fail with ERR_REQUIRE_ESM.
Solution
Options: (1) Convert all files to import/export. (2) Rename files using require() to .cjs. (3) Remove type: module and rename ESM files to .mjs. (4) Use createRequire from 'module'. (5) For config files (jest, eslint): rename to .cjs.
Why
Node uses the nearest package.json type field to determine module format. With 'module', .js files are ESM with different globals (__dirname vs import.meta.url, require vs import).
Revisions (0)
No revisions yet.