Skip to content
Latchkey

Lerna vs Nx: Qual ferramenta de monorepo JS para CI?

Lerna foi pioneira no versionamento e publicação de monorepos JS; Nx acrescenta cache poderoso e orquestração de tarefas (e agora mantém o Lerna).

Lerna é uma ferramenta clássica de monorepo JavaScript, conhecida por versionar e publicar pacotes. Nx é uma plataforma de monorepo mais ampla, com cache de computação, detecção de afetados e geradores. Notavelmente, a Nrwl (a equipe do Nx) assumiu a manutenção do Lerna, e o Lerna moderno pode usar o executor de tarefas do Nx por baixo dos panos.

LernaNx
Força principalVersionamento + publicaçãoCache + orquestração de tarefas
Cache de tarefasVia integração com NxNativo (local + remoto)
Detecção de afetadosLimitada (agora movida a Nx)Grafo de projeto nativo
Geradores / pluginsNãoExtensivo
RelaçãoMantido pela equipe do Nxn/a

No CI

Para pura velocidade no CI - cachear saídas de tarefas, rodar apenas projetos afetados, compartilhar um cache remoto - Nx é o motor mais forte, e o Lerna moderno pode delegar a execução de tarefas ao Nx para obter esses benefícios. O valor duradouro do Lerna é seu fluxo de versionamento e publicação para repositórios com múltiplos pacotes. Muitas equipes usam Nx para o grafo de build/test e mantêm o Lerna especificamente para bumps de versão coordenados e publicação no npm.

Escolhendo para pipelines

Quer builds rápidos apenas do afetado com cache e geradores: Nx. Precisa de versionamento e publicação polidos de múltiplos pacotes: Lerna (agora movido a Nx para tarefas). Não são estritamente um ou outro, dada a manutenção compartilhada e a execução de tarefas apoiada em Nx.

O veredito

Quer o cache e a orquestração de tarefas mais fortes: Nx. Precisa de versionamento/publicação maduros para muitos pacotes: Lerna (que pode rodar tarefas via Nx). Os dois agora se sobrepõem - use Nx para builds, Lerna para releases, se precisar de ambos.

Guias relacionados