0Pricing
HTML Academy · Lección

Conceptos básicos de Module Federation

Comprenda cómo Module Federation permite compartir microfrontends

Conceptos básicos de Module Federation es una lección gratuita de HTML Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de HTML Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de HTML Academy incluye 4 lecciones en total.

¿Qué es Module Federation?

Module Federation permite que una aplicación JavaScript cargue y ejecute código de otra aplicación desplegada de forma independiente durante la ejecución. El patrón se originó en Webpack 5 y ahora también es posible mediante mapas de importaciones nativos e importación dinámica.

El caso de uso

Las organizaciones grandes dividen los monolitos en varios "micro-frontends" desplegados de forma independiente: un host principal y varias aplicaciones de funcionalidades. Module Federation permite que el host cargue cada funcionalidad bajo demanda sin empaquetarlas juntas durante la compilación.

Federación de Webpack

En Webpack 5, el host declara remotes (otras aplicaciones que va a consumir) y los remotos declaran exposes (lo que ofrecen). El entorno de ejecución obtiene un manifiesto pequeño de cada remoto al iniciarse y descarga los fragmentos cuando el host los importa.

Equivalentes nativos

Sin Webpack, la misma idea funciona con mapas de importaciones que apuntan a bundles ESM remotos y con importación dinámica para cargarlos. El mapa de importaciones del host indica "feature-cart": "https://cart-team.example.com/entry.js"; import("feature-cart") carga la versión desplegada más reciente.

<script type="importmap">
{
  "imports": {
    "feature-cart": "https://cart.example.com/v1/entry.js",
    "feature-checkout": "https://checkout.example.com/v2/entry.js"
  }
}
</script>

Dependencias compartidas

Sin coordinación, cada remoto enviaría su propia copia de React. Las herramientas de federación permiten declarar dependencias compartidas: el primer remoto que carga React lo pone a disposición de todos los demás. Los enfoques nativos utilizan mapas de importaciones para apuntar todos los remotos a la misma URL de React.

Despliegue independiente

Cada equipo es responsable de su remoto y lo despliega cuando quiere. El host nunca se vuelve a compilar; incorpora las nuevas versiones en la siguiente carga de página (o mediante invalidación de caché). Esto desacopla por completo los ciclos de lanzamiento.

Estrategias de versionado

Fije los remotos a URL versionadas (/v1/entry.js, /v2/entry.js) para que la actualización del host sea intencionada y no implícita. Algunos equipos utilizan la compatibilidad con semver en el nivel del mapa de importaciones mediante herramientas como JSPM.

Compromisos

La federación añade complejidad en tiempo de ejecución: más solicitudes de red, depuración más difícil entre orígenes y riesgo de incompatibilidad entre dependencias compartidas. Utilícela cuando realmente necesite despliegues independientes; en proyectos pequeños, una única compilación es más sencilla y rápida.

Aislamiento de errores

El bloqueo de un remoto no debería hacer caer al host. Envuelva las importaciones dinámicas en límites de error (React) o en bloques try/catch (JavaScript puro), y muestre una interfaz alternativa cuando falle un remoto. El shell seguirá funcionando aunque una funcionalidad esté temporalmente averiada.

Seguridad de tipos

Las exportaciones remotas no tienen información de tipos en tiempo de compilación dentro del host. Genere tipos compartidos de TypeScript en un paquete independiente que consuman ambos lados, o use validación en tiempo de ejecución (Zod, io-ts) en el límite de federación.

Nativo frente a herramientas

La federación nativa (mapas de importación + ESM) es más sencilla y se basa en estándares, pero carece de la coordinación de dependencias compartidas de Webpack. Elija Webpack/Module Federation para aplicaciones complejas con muchas dependencias compartidas; elija la opción nativa para configuraciones de microfrontends más sencillas.

Evolución futura

El W3C está explorando primitivas más completas para la carga de módulos que harían más capaz a la federación nativa, incluida una mejor negociación de dependencias compartidas. Actualmente, considere los mapas de importación como la base y añada sus herramientas de federación sobre ellos.

Comprobación de conocimientos

¿Cuál es la principal motivación para usar Module Federation en una aplicación grande?

Resumen

Module Federation permite que un host cargue código de remotos desplegados de forma independiente durante la ejecución. Las herramientas de Webpack 5 añaden negociación de dependencias compartidas; la federación nativa usa mapas de importación e importaciones dinámicas. Úselo en arquitecturas de microfrontends con varios equipos y acepte la complejidad adicional a cambio de la libertad de desplegar de forma independiente.

Preguntas frecuentes

¿La lección «Conceptos básicos de Module Federation» es gratis?

Sí — el texto completo de «Conceptos básicos de Module Federation» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de HTML Academy, actualiza a CoddyKit PRO. El curso de HTML Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Conceptos básicos de Module Federation»?

Comprenda cómo Module Federation permite compartir microfrontends Practicas HTML Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar HTML Academy?

No se requiere experiencia previa. HTML Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Conceptos básicos de Module Federation»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de HTML Academy?

Sí. Cada lección de HTML Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Scripts de módulos ES: type=module
  2. Mapas de importación: importmap
  3. Importación dinámica import() en módulos
  4. Conceptos básicos de Module Federation
← Volver a HTML Academy