Skip to content
Latchkey

npm vs Yarn: qual gerenciador de pacotes Node para CI?

O Yarn empurrou o npm a melhorar, e hoje a diferença é menor do que era - mas o formato do lockfile, os workspaces e os hábitos do time ainda diferem.

O npm é o padrão que vem com o Node. O Yarn é um gerenciador de pacotes alternativo (Classic v1 e Berry v2+) historicamente conhecido por velocidade, installs determinísticos e workspaces robustos.

npmYarn
Empacotado com o NodeSimNão (instale separadamente)
Lockfilepackage-lock.jsonyarn.lock
Install no CInpm ciyarn install --immutable
WorkspacesSim (básico)Sim (maduro)
Recursos modernosMelhorias constantesPnP, zero-installs (Berry)

No CI

O npm ci dá um install limpo e reprodutível a partir do package-lock.json sem nada extra para configurar. O Yarn oferece workspaces maduros e, no Berry, recursos avançados como Plug'n'Play e zero-installs que podem acelerar o CI. O desempenho é próximo para repos típicos; a escolha costuma ser mais sobre o lockfile existente e a familiaridade do time do que sobre velocidade bruta.

Escolhendo para pipelines

Greenfield ou querendo zero tooling extra: npm com npm ci. Precisa de workspaces maduros de monorepo ou recursos do Berry: Yarn. Faça commit do lockfile, use o comando de install determinístico e faça cache das dependências de qualquer forma.

O veredito

Quer o padrão empacotado, sem setup: npm. Quer workspaces maduros ou o PnP do Berry: Yarn. Para a maioria dos repos o desempenho é similar - deixe suas necessidades de lockfile e workspace decidirem.

Guias relacionados