Tecnología · GUÍA PRÁCTICA
¿Node muestra ERR_REQUIRE_ESM? Rastrea al llamador real antes de cambiar módulos
El código fuente puede usar import mientras el JavaScript emitido, una dependencia o el ejecutor de pruebas sigue llamando require(). Demuestra el límite y elige migración ESM, import dinámico o una versión temporal revisada.

ERR_REQUIRE_ESM identifica un límite de formato en ejecución. TypeScript, Babel, Vite, Electron, Jest o una dependencia transitiva pueden generar require(), así que la línea ejecutada puede no ser la escrita.
Conserva el primer stack, la versión exacta de Node y el JavaScript ejecutado antes de editar package.json.
Conserva la evidencia de ejecución
Guarda stack, comando, directorio, versiones de Node y gestor, y revisión del lockfile; marca el ESM objetivo y el primer llamador propio.
No borres primero node_modules ni lockfile: cambiarías el grafo y perderías el límite original.
Inspecciona lo que realmente se ejecutó
Abre el archivo citado en dist, out, build o el bundle de Electron y comprueba si la salida aún usa require().
Registra module, moduleResolution, extensión y el type del package.json más cercano.
Mapea el límite y su propietario
Usa lockfile y árbol para fijar versión y decidir si la llamada pertenece a tu código, una dependencia directa o transitiva; lee exports y type.
Registra Node. Una regresión del runtime o top-level await exige otra solución que una actualización ESM-only.
Elige una sola reparación
Si puedes migrar, cambia juntos límite, salida, extensiones relativas y entrada. Si conservas CommonJS, usa dynamic import solo en un límite propio que pueda ser asíncrono.
Si falla una dependencia, prefiere una versión superior compatible. Una fijación temporal necesita motivo, riesgo y fecha de retirada.
Verifica en el mismo límite
Limpia la salida antigua y recompila sin reescribir el lockfile; confirma que desaparece require o que el puente devuelve el export correcto.
Ejecuta comando, pruebas y entrada de producción con el mismo Node; conserva árbol y fragmento emitido.
