Featured image of post ESM estable en Node.js: Soporte de requireFeatured image of post ESM estable en Node.js: Soporte de require

ESM estable en Node.js: Soporte de require

Exploring node resolution changes that support loading ES modules via require(), simplifying codebase migrations.

Node.js ha estabilizado el soporte de ES Modules. La función require(esm) permite cargar módulos ESM desde CJS de forma síncrona, simplificando la migración.

require(esm) en Node.js 22+

Node.js 22+ permite require() de módulos ESM sincrónicamente si no tienen top-level await. Facilita la adopción híbrida.

Configuración

No requiere flags de línea de comandos. Los paquetes ESM deben declararse con "type": "module" o .mjs. require() resuelve automáticamente.

Limitaciones

Top-level await deshabilita require(esm). Paquetes ESM con solo named exports pueden necesitar ajustes. Los loaders personalizados afectan el comportamiento.

Recomendación

Proyectos nuevos: empieza con ESM. Proyectos existentes: migración gradual desde CJS. Paquetes publicados: ofrece dual CJS/ESM con exports condicionales.