Herramientas de usuario

Herramientas del sitio


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

¡Esta es una revisión vieja del documento!


Microfrontends Module federation.

Configuraciones

Comandos

En cada Microfront

    npm i @angular-architects/module-federation@18.0.6
    ng g @angular-architects/module-federation:init --project remote --port 4201 --type remote

Nota: asegurarse que el flag –project sea el nombre del angular.json

En host-app

    ng g @angular-architects/native-federation:init --project host-app --port 4200 --type dynamic-host

Modificaciones al codigo.

En cada Microfront

Crear entry/entry.module con las importaciones raices y entry/entry-routing.module y exponer el modulo en el webpack.config

Nota: ver proyecto de referencia: (mfcajasMenores) es el primero que se configuro como microfrontend

Forma de exponer Microfrontends

Exponiendo modulo raiz de la aplicacion en webpack.config

en este caso exponemos entry.module.ts y un HeaderInterceptor que se inyectará en la raiz del Host

webpack.config.js

 const { shareAll, withModuleFederationPlugin } = require('@angular-architects/module-federation/webpack');

 module.exports = withModuleFederationPlugin({
   name: 'mfcajamenor',

   exposes: {
    './Routes': './src/app/entry/entry.module.ts',
    './HeaderInterceptor': './src/app/core/interceptor/header.interceptor.ts'
   },

   shared: {
    ...shareAll({ singleton: true, strictVersion: true, requiredVersion: 'auto' }),
   },

 });

Ejemplo Carga remota desde el app.routes del Host

.app.routes.ts

 import { Routes } from '@angular/router';
 import { loadRemoteModule } from '@angular-architects/module-federation';
 import { environment } from '../environments/environment';

 export const routes: Routes = [
  {
    path: 'cajas-menores',
    loadChildren: () =>
      loadRemoteModule({
        type: 'module',
        remoteEntry: `${environment.mfcajas_menores_url}/remoteEntry.js`,
        exposedModule: './Routes'
      }).then(m => m.EntryModule)
  },
  {
    path: 'centro-costos',
    loadChildren: () =>
      loadRemoteModule({
        type: 'module',
        remoteEntry: `${environment.mfcentro_costos_url}/remoteEntry.js`,
        exposedModule: './Routes'
      }).then(m => m.EntryModule)
    }
  ];
  
ada/howto/sicoferp/factory/new-migracion-sicoferp/front/configuracion-microfrontend.1738250843.txt.gz · Última modificación: 2025/01/30 15:27 por 192.168.175.214