La modularización en JavaScript alcanzó madurez con ES modules (ESM), hoy estándar en navegador y Node.js. Con import y export, tu código gana separación de responsabilidad, reutilización, mantenibilidad y encapsulamiento. Aquí verás cómo migrar mentalmente desde CommonJS y organizar archivos como mat.js, opinions.js y contact.js, incluidos los ajustes en package.json para que Node.js ejecute ESM sin errores.
¿Por qué ES modules es el estándar moderno en JavaScript?
ES modules unifica el sistema de módulos en navegador y Node.js. Aunque te toparás con proyectos antiguos, la recomendación actual es usar ESM para nuevas implementaciones y migraciones graduales.
¿Qué pasó con CommonJS, AMD y UMD?
CommonJS: ampliamente usado en Node.js; hoy en estado legacy. Se reemplaza por ESM con soporte nativo en Node.js.
AMD (Asynchronous Module Definition): basado en require; quedó obsoleto y ya no se implementa en código moderno.
UMD (Universal Module Definition): patrón envoltorio para varios entornos; también obsoleto.
En lectura de código antiguo, te los encontrarás, pero no son el estándar moderno.
¿Qué ventajas ofrece la modularidad?
Separación de responsabilidad: cada módulo hace una cosa.
Reutilización: importas solo lo necesario.
Mantenibilidad: localizar errores y cambios es más simple.
Encapsulamiento: expones solo lo que el resto necesita.
¿Cómo indicar type: module en Node.js?
Al ejecutar ESM en Node.js puede aparecer un error si el proyecto no define el tipo de módulo.
Solución: en package.json usa type: module para habilitar ES modules.
Trabajaremos desde un archivo principal (por ejemplo, 17-module.js) y un módulo matemático (mat.js). Exporta lo que necesites y luego impórtalo donde corresponda.
¿Cómo exportar constantes y funciones?
En mat.js define y exporta constantes y funciones.
// mat.jsexportconstPI=3.14159;exportfunctionsumar(a, b){return a + b;}exportfunctionrestar(a, b){return a - b;}
Idea clave: solo exporta lo que otros módulos deben usar. El resto puede quedar interno.
¿Cómo importar y ejecutar lo necesario?
En tu archivo de módulos, importa y usa lo que requieras.
Consejo práctico: cuida los nombres de archivos y funciones para evitar typos que rompan los imports.
No temas tener múltiples archivos: herramientas modernas pueden unirlos en uno para ejecución, mientras tú ganas orden y mantenibilidad.
¿Tienes dudas o mejoras sobre tu estructura modular con ES modules? Comparte tu reto y solución en comentarios: la conversación ayuda a afinar patrones y detectar casos reales.