CRA básico con Rsbuild
Consulta aquí la lista de proyectos de ejemplo: Rsbuild CRA
Preparar el entorno
Antes de empezar, necesitas instalar Node.js y asegurarte de que tu versión de Node.js sea >= 16. Recomendamos usar la versión LTS de Node.js 24.
Puedes comprobar la versión de Node.js que estás usando con el siguiente comando:
Si no tienes Node.js instalado en tu entorno actual, o la versión instalada es demasiado antigua, puedes usar nvm o fnm para instalar la versión necesaria.
Este es un ejemplo de cómo instalar la versión LTS de Node.js 24 mediante nvm:
Paso 1: preparar las aplicaciones React
Crear el proyecto React
Puedes usar create-rsbuild para crear un proyecto con Rsbuild + React. Solo tienes que ejecutar el siguiente comando:
Crear la aplicación 1
Crear la aplicación 2
Instalar
Usar React en un proyecto existente
Para compilar React, necesitas registrar el plugin de React de Rsbuild. El plugin añadirá automáticamente la configuración necesaria para los builds de React.
Por ejemplo, regístralo en rsbuild.config.ts:
Para proyectos que usan Create React App, puedes consultar la guía de migración desde CRA.
Asegúrate de que está instalada la versión 5 o superior de Webpack revisando el informe de instalación que proporciona Yarn.
Paso 2: instalar el plugin de build de Module Federation
Paso 3: actualizar los archivos de entrada
En ambas aplicaciones, renombra el archivo index.js a bootstrap.js. Este cambio permite que bootstrap.js se cargue de forma asíncrona, algo esencial para que Module Federation funcione correctamente entre las dos aplicaciones.
Actualiza el contenido de bootstrap.tsx con lo siguiente:
Ahora crea un nuevo archivo index.tsx en ambas aplicaciones con el siguiente contenido para importar bootstrap.tsx:
Paso 4: crear y exponer
Ahora crea un componente para exponerlo desde MFE2
4.1 Crear el componente Button
En MFE2, crea un nuevo archivo llamado Button.tsx en el directorio src con el siguiente contenido:
4.2 Actualizar App.tsx
Actualiza App.tsx en MFE2 para importar y renderizar el componente Button:
Paso 5: configurar Rsbuild en MFE2
Primero crea el archivo module-federation.config.ts en el directorio raíz de MFE2 con la siguiente configuración:
Después, modifica el archivo rsbuild.config.ts del directorio raíz de MFE2 con la siguiente configuración:
Paso 6: consumir el módulo remoto
Consume en MFE1 el módulo expuesto desde MFE2
6.1 Actualizar App.tsx
Actualiza App.tsx en MFE1 para importar y renderizar el componente Button de MFE2:
Paso 6.2: configurar Rsbuild en MFE1
Primero crea el archivo module-federation.config.ts en el directorio raíz de MFE1 con la siguiente configuración:
Después, modifica el archivo rsbuild.config.ts del directorio raíz de MFE1 con la siguiente configuración:
Esta configuración inicializa Module Federation en MFE1 y, al arrancar el servidor de desarrollo, la aplicación queda accesible en http://localhost:3001.
Del mismo modo, la configuración activa Module Federation en MFE2, exponiendo así el componente Button en http://localhost:3002/remoteEntry.js. Con el servidor de desarrollo en marcha, queda accesible en http://localhost:3002.