SISTEMAS DE MÓDULOS EN NODE.JS: COMMONJS Y ES MODULES

Sistemas de Módulos en NodeJS
  • CommonJS: Es el sistema por defecto en NodeJS. Usa require() para importar y module.exports para exportar. Es síncrono y ampliamente utilizado en aplicaciones de servidor. Sencillo y ampliamente soportado y tiene caché de módulos para mejorar el rendimiento. Lo malo es que tiene carga síncrona, menos eficiente para ciertos casos y no es nativo en navegadores. Ejemplo:

    // circle.js
    const { PI } = Math;
    exports.area = (r) => PI * r ** 2;
    exports.circumference = (r) => 2 * PI * r;
    
    // app.js
    const circle = require('./circle');
    console.log(`Área de un círculo de radio 4: ${circle.area(4)}`);
    
  • ECMAScript Modules o ESM: Introducido como estándar oficial para JavaScript, usa import y export. Es asíncrono y compatible con navegadores y NodeJS. Usa la extensión ".mjs" o agrega "type": "module" en "package.json". Estos módulos son asíncronos, mejoran el rendimiento, son compatibles con navegadores y la sintaxis es más moderna. Lo malo es el soporte en herramientas antiguas. Ejemplo:

    // miModulo.js
    export const saludar = () => console.log('Hola desde ES Module');
    
    // main.js
    import { saludar } from './miModulo.js';
    saludar();