Introducción
💡 ¿Qué es Module Federation?
Module Federation es un patrón arquitectónico para descentralizar aplicaciones JavaScript (similar a los microservicios en el lado del servidor). Te permite compartir código y recursos entre varias aplicaciones JavaScript (o micro-frontends). Esto puede ayudarte a:
- Reducir la duplicación de código
- Mejorar la mantenibilidad del código
- Reducir el tamaño total de tus aplicaciones
- Mejorar el rendimiento de tus aplicaciones
✨ ¿Qué es Module Federation 2.0?
Module Federation 2.0 se diferencia del Module Federation integrado en Webpack5 en que no solo ofrece las funcionalidades principales de exportación de módulos, carga y compartición de dependencias, sino también sugerencias de tipos dinámicas, Manifest, Federation Runtime y Runtime Plugin System. Estas funcionalidades hacen que Module Federation sea más adecuado como arquitectura de micro-frontends en aplicaciones Web a gran escala.
🔥 Funcionalidades
Module Federation ofrece las siguientes funcionalidades:
- ⚡ Compartición de código y reutilización de dependencias
- 📝 Manifest
- 🎨 Module Federation Runtime
- 🧩 Sistema de plugins de runtime
- 🚀 Sugerencias de tipos dinámicas
- 🛠️ Chrome Devtool
- 🦀 Compatibilidad con Rspack y Webpack
🎯 Casos de uso
Module Federation es adecuado para los siguientes escenarios:
- Aplicaciones grandes: en aplicaciones grandes, puedes dividir la aplicación en varios micro-frontends y usar Module Federation para compartir código y recursos entre ellos.
- Arquitectura de micro-frontends: Module Federation es una herramienta ideal para construir arquitecturas de micro-frontends.
- Desarrollo con varios equipos: Module Federation puede ayudar a varios equipos a desarrollar de forma colaborativa aplicaciones grandes.
🕠 Historia de Module Federation
Module Federation es una funcionalidad introducida en Webpack 5, pero su historia se remonta a 2017. En aquel momento, el equipo de Webpack empezó a explorar una forma de compartir código entre varias aplicaciones.
-
En 2018 se publicó Webpack 4.20, que introdujo los hooks de módulos y sentó las bases para el desarrollo de Module Federation.
-
En 2019 se publicó Webpack 5, que introdujo oficialmente la funcionalidad de Module Federation.
Module Federation se ha convertido en una herramienta potente para construir aplicaciones web modernas.
🕰️ El futuro de Module Federation
Module Federation aspira a convertirse en un método arquitectónico para construir aplicaciones web grandes, similar a los microservicios en el backend. Module Federation ofrecerá más capacidades para cubrir las necesidades fundamentales de la descentralización de aplicaciones web grandes, que actualmente incluyen:
- Ofrecer herramientas Devtool completas
- Ofrecer más capacidades de framework de alto nivel, como Router, Sandbox y SSR
- Ofrecer buenas prácticas para aplicaciones web grandes basadas en Module Federation
Síguenos
✨ Próximos pasos
Quizá quieras: