Los módulos de JavaScript desempeñan un papel crucial en la organización del código, la mejora de la reutilización y la mejora de la mantenibilidad de las aplicaciones. Dos sistemas de módulos principales ampliamente utilizados son CommonJS (CJS) y ECMAScript Modules (ESM). Comprender sus diferencias y capacidades es clave para aprovecharlas de manera efectiva en sus proyectos.
CommonJS es el sistema de módulos diseñado originalmente para entornos Node.js. Destaca la simplicidad y la carga sincrónica de módulos.
Los módulos en CommonJS usan module.exports para exportar valores, objetos o funciones.
1. Exportación/Importaciones predeterminadas
// logger.js function log(message) { console.log(message); } module.exports = log; // Default export // index.js const log = require('./logger'); log('This is a log message.'); // Output: This is a log message.
2. Exportaciones/Importaciones nombradas
// math.js function add(a, b) { return a b; } function subtract(a, b) { return a - b; } module.exports = { add, subtract }; // Named exports // index.js const { add, subtract } = require('./math'); console.log(add(5, 3)); // Output: 8 console.log(subtract(5, 3)); // Output: 2
ESM, introducido en ES6 (ES2015), es el sistema de módulos estandarizado para JavaScript. Admite la carga de módulos tanto sincrónica como asincrónica y es compatible de forma nativa con navegadores modernos y con Node.js con ciertas configuraciones.
ESM utiliza declaraciones de exportación para exportar valores, objetos o funciones.
1. Exportación/Importación predeterminada
// utils.mjs (Note the .mjs extension for ESM) function formatName(name) { return `Mr./Ms. ${name}`; } export default formatName; // index.mjs import formatName from './utils.mjs'; console.log(formatName('John')); // Output: Mr./Ms. John
2. Exportaciones nombradas
// operations.mjs export function multiply(a, b) { return a * b; } export function divide(a, b) { return a / b; } // index.mjs import { multiply, divide } from './operations.mjs'; console.log(multiply(4, 2)); // Output: 8 console.log(divide(10, 2)); // Output: 5
3. Estilos de exportación mixtos en módulos ECMAScript
// mixedExports.mjs function greet(name) { return `Hello, ${name}!`; } export default greet; export function goodbye(name) { return `Goodbye, ${name}!`; } // index.mjs import sayHello, { goodbye } from './mixedExports.mjs'; console.log(sayHello('Alice')); // Output: Hello, Alice! console.log(goodbye('Bob')); // Output: Goodbye, Bob!
La elección entre los módulos CommonJS y ECMAScript depende del entorno y los requisitos de su proyecto. Si bien CommonJS es sólido para el desarrollo backend de Node.js, ESM ofrece interoperabilidad entre navegadores y aplicaciones modernas de Node.js. Comprender estos sistemas de módulos prepara a los desarrolladores para aprovechar las capacidades modulares de JavaScript de manera efectiva.
Al aprovechar CommonJS o ESM, los desarrolladores pueden mejorar la organización del código, mejorar la escalabilidad del proyecto y facilitar la colaboración en proyectos de JavaScript.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3