Sistema de plugins
Module Federation ofrece un sistema ligero de runtime plugins con el que implementa la mayoría de sus funcionalidades y que permite a los usuarios ampliarlas.
Los plugins que desarrolles pueden modificar el comportamiento predeterminado de Module Federation y añadir diversas funcionalidades adicionales, entre otras:
- Obtener información de contexto
- Registrar hooks del ciclo de vida
- Modificar la configuración de Module Federation
- ...
Desarrollar plugins
Los plugins se proporcionan en forma de una función similar a () => ModuleFederationRuntimePlugin.
Ejemplo de plugin
Registrar plugins (puedes usar cualquiera de los dos métodos):
- Registro de plugins en tiempo de build
- Registro de plugins en runtime
Estructura de un plugin
Los plugins basados en funciones pueden aceptar un objeto de opciones y devolver una instancia del plugin, gestionando el estado interno mediante closures.
La función de cada parte es la siguiente:
- La propiedad
namesirve para identificar el nombre del plugin. fn: los distintos hooks.
Convenciones de nombres
Las convenciones de nombres de los plugins son las siguientes:
- La función del plugin se llama
xxx-pluginy se exporta con nombre. - El
namedel plugin sigue el formatoxxx-plugin.
Aquí tienes un ejemplo:
Introducción a los hooks
Consulta Runtime Hooks