Carlos Cifuentes
Glosario

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