Mi resumen, espero les sirva 😃
.
Módulos: Es algo muy importante que nos vamos a encontrar en el ecosistema de JavaScript, existen diferentes terminos: CJS, ESM, AMD, IIFE, UMD, y otros más, que no son más que propuestas que a lo largo del tiempo de vida de JS y de la web han existido para resolver una particularidad, poder preparar nuestros proyectos para que lleguen a los usuarios.
.
- Immediately invoked function expression (IIFE): Forma en la que dentro de JS, se podrá invocar inmediatamente una función, lo que se hace es encapsularla en una función anónima y llamarla al final.
var module = (function () {
/* Data */
/* Methods */
// Revealing module
return {
/* Public data/methods */
};
})();
module.data;
module.method();
- CommonJS (CJS): Propuesta que nace en el 2009, alternativa para crear modulos en JS. Tiene una funcionalidad particular para trabajar de forma asincrona con los modulos.
// module-name.js
module.exports = {
/* ... */
}
// index.js
const module = require("./module-name.js");
const package = require("package");
module.method();
- AMD (Asynchronous Module Definition): Permite cargar modulos del lado del cliente.
define(['dep1', 'dep2'], function (dep1, dep2) {
/* ... */
return {
/* ... */
};
});
- ES Modules (ESM): Forma en la que vamos a poder incorporar, importar o exportar.
// module.js
export const data = 42;
export const method = () => console.log("Hello");
// index.js
import { data, method } from "./module.js";
¿Qué es un empaquetador de módulos de JavaScript?
No es más que una pieza de software que nos permite tener todo un proyecto bien dividido en diferentes elementos que pueden ser también imágenes, estilos, entre otros recursos, y trabajar con la división de nuestro proyecto que este construido en JS en diferentes módulos y con ello generar un único archivo con la unión de todos estos.
.
Resumen
Un módulo son piezas de código que vamos a separar dentro de nuestro proyecto, pueden ser componentes, utilerías, y diferentes recursos que tendrá nuestro proyecto. Y un empaquetador es poder tener nuestro código muy bien organizado independientemente de como va a llegar al usuario.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?