In illimity Bank, il nostro stack frontend è cresciuto fino a comprendere diverse applicazioni: portali rivolti ai clienti, dashboard interne e pacchetti condivisi di design system. Un monorepo è stato il naturale passo successivo per condividere il codice senza l'overhead di rilasci npm separati.
Abbiamo valutato quattro approcci principali:
- Nx — Opinionated, completo, con calcolo integrato degli elementi influenzati (affected)
- Turborepo — Caching rapido della pipeline, configurazione minima
- Lerna (v7+) — Focalizzato sulla pubblicazione dei pacchetti, migliorato con backend Nx
- PNPM workspaces — Orchestrazione essenziale, massima flessibilità
- Tempo di build con cache a freddo e a caldo
- Accuratezza nel rilevamento dei progetti influenzati (affected)
- Overhead di configurazione
- Complessità di integrazione CI/CD
- DX (Developer Experience) per l'onboarding di nuovi ingegneri
Nx ha vinto per la Developer Experience e per il rilevamento degli elementi influenzati. Turborepo ha vinto per semplicità e costi di adozione a freddo. Per un team già esperto in React + TypeScript, i generatori e il plugin IDE di Nx hanno fatto pendere l'ago della bilancia.
Questo articolo è stato originariamente pubblicato su LinkedIn. Consulta il
link sopra per la versione completa con benchmark e grafici.
- La strategia di caching è più importante dello strumento stesso
- La qualità del rilevamento degli elementi influenzati impatta direttamente sulla velocità della CI su larga scala
- Scegli lo strumento che il tuo team manterrà davvero, non quello teoricamente ottimale