Nx
Nx es un sistema de build open source para monorepos que entiende las dependencias entre proyectos, corre las tareas solo donde hace falta y guarda sus resultados en caché.
Nx administra un workspace con muchos proyectos. Analiza los imports y la configuración para construir un grafo de proyectos, y usa ese grafo para todo lo demás. Nació en la comunidad de Angular y hoy soporta React, Node y otros stacks mediante plugins.
Sus capacidades principales:
- Comandos affected: corren build, test o lint solo en los proyectos tocados por un cambio.
- Caché: omite una tarea cuyas entradas no cambiaron, de forma local o con una caché remota compartida.
- Generadores: crean aplicaciones, librerías y componentes con una estructura consistente.
- Reglas de límites entre módulos: una regla de lint que restringe qué proyectos pueden importar a cuáles, según etiquetas.
Ejemplo
nx affected -t lint test build
En un workspace con un shell y seis remotos, un pull request que cambia solo el remoto de facturas corre estas tres tareas para ese remoto y para lo que dependa de él. Los demás proyectos se omiten o se restauran desde la caché.
Confusión frecuente
A veces se ve a Nx como una herramienta solo para Angular, o como un framework que se apodera del proyecto. Es una capa sobre las herramientas de build existentes. Los builders de Angular, Vite o Jest siguen haciendo el trabajo real, y Nx decide qué correr y cuándo.
Nx tampoco diseña la arquitectura por ti. El grafo y la regla de límites solo ayudan si el workspace está dividido en librerías con responsabilidades claras, y si las etiquetas se definen y se hacen cumplir. Un workspace con una sola librería compartida gigante obtiene poco beneficio, porque cada cambio afecta a todo. Parte de los límites que quieres entre equipos y exprésalos como etiquetas. En microfrontends hay un esquema de plataforma.
Por qué importa. Mantiene rápido el CI cuando un shell, muchos remotos y las librerías compartidas viven en un repositorio, y sus reglas de límites impiden que el código nuevo importe código legacy de formas que bloquearían la migración.
Términos relacionados
¿Planeas una migración o una plataforma de microfrontends?
En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.
Escríbeme por LinkedIn