Acceso al runtime
- Las funcionalidades y capacidades de Module Federation
- El glosario de Module Federation
- Cómo consumir y exportar módulos
Actualmente, Module Federation ofrece dos formas de registrar y cargar módulos:
-
Una es declararlos en el plugin de build (normalmente en el archivo
module-federation.config.ts). -
La otra es registrar y cargar los módulos directamente mediante la API de
runtime.
Los dos modos no entran en conflicto y se pueden usar a la vez. Puedes elegir con flexibilidad el método y el momento de registro de los módulos según tu escenario concreto.
Diferencias entre los dos enfoques
Si se usa el plugin de build, se creará automáticamente una instancia de MF y se guardará en memoria cuando arranque el proyecto. Puedes llamar directamente a los métodos de la instancia de MF mediante la .
Si no se usa el plugin de build, tienes que crear manualmente una instancia de MF antes de llamar a la API correspondiente.
Un objeto creado por la clase ModuleFederation que contiene toda la funcionalidad del runtime. Puedes escribir __FEDERATION__.__INSTANCES__ en la consola para ver la información completa de la instancia.
Instalación
Cada tipo de proyecto debe instalar e importar el Runtime desde una entrada distinta. La mayoría de proyectos deberían instalar @module-federation/enhanced e importar las APIs del Runtime desde @module-federation/enhanced/runtime. Si tu proyecto Modern.js ya usa un plugin de Module Federation, importa las APIs del Runtime desde la entrada /runtime del plugin para que el plugin del framework y las llamadas manuales al Runtime usen la misma instancia del Runtime.
@module-federation/enhanced
Modern.js
En proyectos Modern.js v2, instala @module-federation/modern-js e importa las APIs del Runtime desde @module-federation/modern-js/runtime.
Registro de módulos
Carga de módulos
Cargar módulos anónimos
Cargar módulos con nombre
Cargar funciones de utilidad
Siguientes lecturas
- API de runtime:
createInstance,loadRemote,registerRemotesy otras APIs de runtime. - Plugins de runtime: amplía el flujo de carga del runtime.
- Hooks de runtime: hooks del ciclo de vida disponibles para los plugins de runtime.