Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:new-migracion-sicoferp:front:configuracion-microfrontend

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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 cada Microfront]
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 16: Línea 24:
  
 <​code>​ <​code>​
-    ​ng g @angular-architects/​native-federation:​init --project host-app --port 4200 --type dynamic-host+  ​ng g @angular-architects/​native-federation:​init --project host-app --port 4200 --type dynamic-host
 </​code>​ </​code>​
  
 ===== 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]]
  
ada/howto/sicoferp/factory/new-migracion-sicoferp/front/configuracion-microfrontend.1738250863.txt.gz · Última modificación: 2025/01/30 15:27 por 192.168.175.214