Rspack

  • Permite hacer build de módulos que cumplen las especificaciones de carga de Module Federation.
  • Permite consumir, mediante alias, módulos que siguen las especificaciones de Module Federation.
  • Permite configurar dependencias shared para los módulos, de modo que, si el entorno host del módulo cargado ya tiene la dependencia correspondiente, no se vuelva a cargar.
  • Cuando un módulo tiene tipos remotos, descarga y consume automáticamente los tipos de los módulos remotos.
  • El consumo de módulos remotos incluye capacidades de actualización en caliente.

Inicio rápido

Instalación

Puedes instalar el plugin con los siguientes comandos:

npm
yarn
pnpm
bun
npm add @module-federation/enhanced

Crear module-federation.config.ts

Crea el archivo module-federation.config.ts con el siguiente contenido:

module-federation.config.ts
import { createModuleFederationConfig } from '@module-federation/enhanced/rspack';

export default createModuleFederationConfig({
  name: 'host',
  remotes: {
    provider: 'provider@http://localhost:2004/mf-manifest.json',
  },
  exposes: {
    './Button': './src/components/Button.tsx',
  },
  shared: {
    react: {
      singleton: true,
    },
    'react-dom': {
      singleton: true,
    },
  },
});

Registrar el plugin

En Rspack, puedes añadir plugins mediante la opción de configuración plugins:

rspack.config.ts
import { ModuleFederationPlugin } from '@module-federation/enhanced/rspack';
import mfConfig from './module-federation.config';

export default defineConfig({
  plugins: [new ModuleFederationPlugin(mfConfig)],
});

Configuración

Encontrarás descripciones detalladas de todas las opciones de configuración en la página Descripción general de la configuración.