Lingua-e
← Errores
JavaScript

Qué significa ERR_REQUIRE_ESM y cómo solucionarlo

Referencia del error

ERR_REQUIRE_ESM

Lenguaje

JavaScript

Severidad

Alta

Cuándo ocurre

Node.js lanza ERR_REQUIRE_ESM cuando una llamada CommonJS require() intenta cargar un Módulo ES.

Posibles soluciones

Reemplaza require() con import() dinámico: const mod = await import('pkg'). Alternativamente, fija la última versión CommonJS del paquete (ej. chalk@4). Para proyectos nuevos, migra completamente a ESM agregando 'type': 'module' a package.json.

Más detalles

Node.js lanza ERR_REQUIRE_ESM cuando una llamada CommonJS require() intenta cargar un Módulo ES. CommonJS y los Módulos ES tienen mecanismos de carga diferentes, y Node.js no permite que require() sincrónico cargue Módulos ES asíncronos.

Por qué ocurre

  • Un paquete popular (chalk, node-fetch, etc.) lanzó una nueva versión mayor como solo ESM.
  • Un archivo .mjs o un paquete con 'type': 'module' es requerido desde un módulo CommonJS.
  • Migrar un proyecto a ESM parcialmente y mezclar require() e import.

Posibles soluciones

Reemplaza require() con import() dinámico: const mod = await import('pkg'). Alternativamente, fija la última versión CommonJS del paquete (ej. chalk@4). Para proyectos nuevos, migra completamente a ESM agregando 'type': 'module' a package.json.

Ejemplos

JavaScript

Código que causa el error

// In a CommonJS file (.js without "type":"module")
const chalk = require("chalk"); // chalk v5+ is ESM-only

Error en la terminal

Error [ERR_REQUIRE_ESM]: require() of ES Module node_modules/chalk/source/index.js not supported.
Instead change the require of index.js in ... to a dynamic import() which is available in all CommonJS modules.

Código corregido

// Option 1: use dynamic import
const chalk = await import("chalk").then(m => m.default);

// Option 2: downgrade to a CommonJS version (e.g. chalk@4)
// npm install chalk@4

Practica en inglés

¿Cómo le explicarías un ERR_REQUIRE_ESM a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis