Skip to content
Latchkey

Turborepo vs Lerna: qual ferramenta de monorepo para CI?

Elas resolvem metades diferentes do problema do monorepo: Turborepo faz cache e orquestra tasks, Lerna versiona e publica pacotes.

Turborepo é um task runner rápido com cache de computação e execuções apenas do que foi afetado para monorepos JS/TS. Lerna gerencia versionamento e publicação de pacotes de monorepo; o Lerna moderno delega a execução de tasks ao Nx, e muitos times combinam Lerna (publicação) com Turborepo (cache de tasks).

TurborepoLerna
Trabalho principalCache de tasks + orquestraçãoVersionamento + publicação
Cache de task/computaçãoSim (local + remoto)Via Nx (Lerna moderno)
Execuções afetadas/apenas-alteradasSimSim (via Nx)
Workflow de publicaçãoNão (externo)Sim (recurso central)
Melhor paraPipelines rápidos com cacheReleases coordenados

No CI

Para velocidade de build/test, Turborepo é a ferramenta: faça cache das saídas de tasks e rode apenas os pacotes afetados para que código inalterado não seja reconstruído. O valor duradouro do Lerna é o versionamento e a publicação coordenados de muitos pacotes. Como eles se sobrepõem pouco, uma configuração comum é Turborepo para cache/orquestração e Lerna para releases. Se você só precisa de tasks de CI rápidos, Turborepo sozinho basta.

Acelere

Habilite o cache remoto do Turborepo entre jobs de CI e restrinja as tasks aos pacotes afetados - o maior ganho de velocidade isolado. Tasks que ainda rodam em um cache miss executam em runners de CI; runners gerenciados mais rápidos encurtam essas.

O veredito

Precisa de builds rápidos com cache e execuções apenas do que foi afetado: Turborepo. Precisa de versionamento e publicação coordenados: Lerna. Eles são complementares - muitos monorepos usam Turborepo para tasks e Lerna para releases.

Guias relacionados