Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
ada:howto:sicoferp:factory:new-migracion-sicoferp:front:configuracion-microfrontend [2025/01/30 15:27] 192.168.175.214 [En host-app] |
ada:howto:sicoferp:factory:new-migracion-sicoferp:front:configuracion-microfrontend [2025/03/06 16:40] (actual) 192.168.175.219 |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Microfrontends Module federation. ====== | + | ====== Microfrontends Webpack (Module federation). ====== |
| + | |||
| ===== Configuraciones ===== | ===== Configuraciones ===== | ||
| **Comandos** | **Comandos** | ||
| + | |||
| + | Primeramente se ejecutan los siguientes comandos | ||
| ===== En cada Microfront ===== | ===== En cada Microfront ===== | ||
| + | |||
| <code> | <code> | ||
| npm i @angular-architects/module-federation@18.0.6 | npm i @angular-architects/module-federation@18.0.6 | ||
| + | </code> | ||
| + | |||
| + | <code> | ||
| ng g @angular-architects/module-federation:init --project remote --port 4201 --type remote | ng g @angular-architects/module-federation:init --project remote --port 4201 --type remote | ||
| </code> | </code> | ||
| Línea 21: | Línea 29: | ||
| ===== Modificaciones al codigo. ===== | ===== Modificaciones al codigo. ===== | ||
| - | En cada Microfront | + | **En cada Microfront** |
| | | ||
| - | Crear **entry/entry.module** con las importaciones raices y **entry/entry-routing.module** y exponer el modulo en el webpack.config | + | Crear un modulo **entry/entry.module** con las importaciones raices y un routing **entry/entry-routing.module** |
| **Nota**: ver proyecto de referencia: (mfcajasMenores) es el primero que se configuro como microfrontend | **Nota**: ver proyecto de referencia: (mfcajasMenores) es el primero que se configuro como microfrontend | ||
| - | Forma de exponer Microfrontends | + | ===== Forma de exponer Microfrontends ===== |
| Exponiendo modulo raiz de la aplicacion en **webpack.config** | Exponiendo modulo raiz de la aplicacion en **webpack.config** | ||
| Línea 48: | Línea 56: | ||
| shared: { | shared: { | ||
| - | ...shareAll({ singleton: true, strictVersion: true, requiredVersion: 'auto' }), | + | ...shareAll({ singleton: true, strictVersion: false, requiredVersion: 'auto' }), |
| }, | }, | ||
| Línea 87: | Línea 95: | ||
| </code> | </code> | ||
| + | **Modificacion en la navegacion de los microfrontends** | ||
| + | Anteponer el nombre del microfrontend en todos los enlaces para que pueda ser tomado por el HOST | ||
| + | |||
| + | * router.navigate Asi siendo **"caja-menores/"** el nombre con el que se llamo el microfront en el path de app.routes.ts desde el HOST | ||
| + | |||
| + | <code> | ||
| + | this._router.navigate([`/cajas-menores/gastos`]); | ||
| + | </code> | ||
| + | |||
| + | **Se debe cargar el headerInterceptor en el app.config.ts del HOST** | ||
| + | |||
| + | <code> | ||
| + | |||
| + | const loadInterceptor = async () => { | ||
| + | const headersInterceptor = await loadRemoteModule({ | ||
| + | type: 'module', | ||
| + | remoteEntry: `${environment.mfcajas_menores_url}/remoteEntry.js`, | ||
| + | exposedModule: './HeaderInterceptor' | ||
| + | }).then(m => m.headersInterceptor); | ||
| + | | ||
| + | return headersInterceptor; | ||
| + | }; | ||
| + | |||
| + | // Creamos un interceptor que delegará al interceptor remoto una vez que esté cargado | ||
| + | const delegatingInterceptor: HttpInterceptorFn = (req, next) => { | ||
| + | return new Observable(subscriber => { | ||
| + | loadInterceptor().then(remoteInterceptor => { | ||
| + | remoteInterceptor(req, next).subscribe(subscriber); | ||
| + | }); | ||
| + | }); | ||
| + | }; | ||
| + | |||
| + | </code> | ||
| + | |||
| + | **inyectar la funcion arriba ilustrada "delegatingInterceptor()" de tipo HttpInterceptorFn asi:** | ||
| + | |||
| + | <code> | ||
| + | |||
| + | provideHttpClient( | ||
| + | withInterceptors([delegatingInterceptor]) | ||
| + | ) | ||
| + | | ||
| + | </code> | ||
| + | [[ada:howto:sicoferp:factory:new-migracion-sicoferp:front|←Regresar]] | ||