Cómo Crear Un Micro Frontend con React y Vite

10 minuto(s)

Github

Crear un Micro Frontend con React es fácil.

Solo debes seguir ciertos pasos que te compartiré a continuación.

En este tutorial te enseñaré a Cómo Crear Un Micro Frontend con React y Vite, vamos con ello.

Microfrontend creado con React y Vite
React y Vite son una combinación poderosa en el desarrollo de Microfrontends

Creación del Proyecto de Micro Frontends

Nuestra arquitectura Micro Frontend estará compuesta de 3 proyectos:

  • Imagen: Este proyecto mostrará una imagen.
  • Main: Este es el proyecto principal, el cual cargará los proyectos Imagen y Web.
  • Web: Este proyecto mostrará una url.

Vamos a crear estos proyectos paso a paso a continuación.

Usaremos la librería React y la popular herramienta Vite JS.

Antes que todo debemos crear un directorio principal para los Micro Frontend.

Yo lo crearé manualmente y le daré el nombre react-microfrontend

La idea es que todo el proyecto quede así:


Ahora pasemos a crear el primer Micro Frontend.

Creación del Micro Frontend Imagen

Ejecutamos el siguiente comando para crear el proyecto:


Luego que el proyecto ha sido creado.

Ingresamos al directorio del proyecto e instalamos las dependencias necesarias:


Al final puedes ver que ejecutamos el comando npm run dev.

Este comando nos ayuda a verificar que el proyecto se haya creado correctamente.

Puedes ejecutarlo de manera opcional.

Ya que no necesitaremos ejecutar este comando para el proyecto.

Creamos un archivo o componente con el nombre Imagen.jsx y agregamos una sencilla imagen:


El componente Imagen se debería de ver así en la vista front:

Vista front del componente Imagen
Este componente muestra una imagen (logo de Nube Colectiva)

Sirviendo el Micro Frontend Imagen

Para que este proyecto este disponible para el contenedor principal.

Debemos realizar algunas configuraciones.

Instalamos el paquete NPM llamado originjs/vite-plugin-federation ejecutando el siguiente comando:


Paso seguido abrimos el archivo vite.config.js

Dentro de él importamos el paquete vite-plugin-federation que instalamos anteriormente.

Luego servimos el componente Imagen.

Por último hacemos una configuración para la compilación del proyecto a producción:


Ahora pasemos a compilar el proyecto e iniciar el servidor del proyecto en producción.

Compilación del proyecto

Ejecutamos el siguiente comando para compilar el proyecto a producción:


Ahora dejemos el servidor de desarrollo del proyecto ejecutándose.

Iniciar el servidor de producción

Por último debemos de dejar el servidor de producción del proyecto activo.

De esta manera podremos acceder a él, desde el contenedor principal Main.

Ejecutamos el siguiente comando para iniciarlo:


No muevas nada, déjalo así encendido.

Ahora pasemos a crear el Micro Frontend o proyecto Web.

Creación del Micro Frontend Web

Ejecutamos el siguiente comando para crear el proyecto:


Luego que el proyecto ha sido creado.

Ingresamos al directorio del proyecto e instalamos las dependencias necesarias:


Al final puedes ver que ejecutamos el comando npm run dev.

Este comando nos ayuda a verificar que el proyecto se haya creado correctamente.

Puedes ejecutarlo de manera opcional.

Ya que no necesitaremos ejecutar este comando para el proyecto.

Creamos un archivo o componente con el nombre Web.jsx y agregamos una sencilla url:


El componente Web se debería de ver así en la vista front:

Vista front del componente Web
Este componente muestra la web de Nube Colectiva

Sirviendo el Micro Frontend Web

Para que este proyecto este disponible para el contenedor principal.

También debemos realizar algunas configuraciones.

Instalamos el paquete NPM llamado originjs/vite-plugin-federation ejecutando el siguiente comando:


Paso seguido abrimos el archivo vite.config.js

Dentro de él importamos el paquete vite-plugin-federation que instalamos anteriormente.

Luego servimos el componente Web.

Por último hacemos una configuración para la compilación del proyecto a producción:


Ahora pasemos a compilar el proyecto e iniciar el servidor del proyecto en producción.

Compilación del proyecto

Ejecutamos el siguiente comando para compilar el proyecto a producción:


Ahora dejemos el servidor de desarrollo del proyecto ejecutándose.

Iniciar el servidor de producción

Por último debemos de dejar el servidor de producción del proyecto activo.

De esta manera podremos acceder a él, desde el contenedor principal Main.

Ejecutamos el siguiente comando para iniciarlo:


No muevas nada, déjalo así encendido.

Si te fijas bien el servidor de producción de Imagen es http://localhost:4173/

Y el de Web es http://localhost:4174/

Estas URLs locales las asigna el mismo Vite JS.

Hasta aquí hemos creado los 2 Micro Frontends o proyectos que serán cargados en la vista principal Main.

Creación del Micro Frontend Main (Contenedor)

Ahora vamos a crear el proyecto principal en donde llamaremos a todos nuestros Micro Frontends.

Es decir a Imagen y Web, pero puedes llamar a otros más si deseas.

Ejecutamos el siguiente comando para crear el proyecto:


Luego que el proyecto ha sido creado.

Ingresamos al directorio del proyecto e instalamos las dependencias necesarias:


Al final puedes ver que ejecutamos el comando npm run dev.

Este comando nos ayuda a verificar que el proyecto se haya creado correctamente.

Puedes ejecutarlo de manera opcional.

Ya que no necesitaremos ejecutar este comando para el proyecto.

Importando todos los Micro Frontends

Para poder acceder a los demás proyectos o Micro Frontends, es decir a Imagen y Web.

Vamos a realizar algunas configuraciones.

Instalamos el paquete NPM llamado originjs/vite-plugin-federation ejecutando el siguiente comando:


Paso seguido abrimos el archivo vite.config.js

Dentro de él importamos el paquete vite-plugin-federation que instalamos anteriormente.

Luego llamamos a los componentes o Micro Frontends Imagen y Web.

Por último hacemos una configuración para la compilación del proyecto a producción:


Ahora vamos a ensamblar todos los Micro Frontends en la vista front.

Integración de los Micro Frontends en el Front-end

Abrimos el archivo App.jsx e importamos los componentes Imagen y Web.

Y los usamos en la vista front:


Por último iniciamos el servidor de desarrollo de Vite para el proyecto o contenedor principal Main.

Para iniciar el servidor ejecutamos el siguiente comando:


Si abrimos la ruta local http://localhost:5173/ en el navegador, podemos ver que el proyecto carga con los demás Micro Frontends.

Pero la imagen del Micro Frontend Imagen no carga correctamente.

Solución al Problema al Cargar la imagen del Micro Frontend imagen

Estuve investigando varias horas, una manera de corregir este problema siguiendo las buenas prácticas pero no la encontré.

Seguí investigando y encontré una forma alternativa o truco para corregir esto.

Cuando compilamos el proyecto Imagen usando el comando npm run build

Se nos genera un directorio llamado dist con varios archivos compilados.

Dentro del directorio dist encontré un archivo llamado __federation_expose_Imagen-0obkyj40.js

Lo abrí y tenia este contenido:


Lo que hice fue colocar la ruta completa del servidor de producción del proyecto Imagen:

Es decir ahora quedaría así:


Si tienes varias imágenes, solo colócales la ruta completa de tu servidor de producción.

Resultado Final

Entonces actualizamos el navegador que esta cargando la ruta local http://localhost:5173/ de nuestro servidor.

Y podemos ver nuestro proyecto funcionando correctamente.

Nos muestra el Micro Frontend Imagen y Web dentro del proyecto o contenedor principal Main.

Este proyecto tiene una arquitectura Micro Frontend creada con React y Vite:

Proyecto Micro Frontend creado con react y vite correctamente
Es una arquitectura básica Micro Frontend, pero cumple su función

Si deseas agregar más Micro Frontends, solo sigue los mismos pasos indicados

Así de fácil puedes crear un Micro Frontend con React y Vite.

Conclusión

En este tutorial has aprendido a Cómo Crear Un Micro Frontend con React y Vite.

Te servirá de guía para que puedas crear tu propio Micro Frontend.

Recuerda practicar mucho, solo así serás un mejor desarrollador de Micro Frontends.

Nota (s)

  • En la siguiente parte y última ensamblaremos toda nuestra arquitectura Micro Frontend.
  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.