npm vs Yarn vs pnpm em CI: velocidade, disco e confiabilidade
Em CI, a escolha do gerenciador de pacotes afeta o tempo de instalação, o disco e a taxa de acerto do cache mais do que em qualquer outro lugar.
Os três instalam dependências Node, mas diferem em velocidade, uso de disco e quão bem fazem cache em CI.
| npm | Yarn | pnpm | |
|---|---|---|---|
| Comando de instalação em CI | npm ci | yarn --frozen-lockfile | pnpm i --frozen-lockfile |
| Uso de disco | Alto | Alto | Baixo (store por conteúdo) |
| Velocidade típica | Base | Rápido | O mais rápido com store aquecido |
| Estrito por padrão | Flexível | Flexível | Estrito (sem deps fantasmas) |
Especificamente para CI
O pnpm geralmente vence em velocidade e disco graças ao seu store endereçado por conteúdo, o que importa em runners com recursos limitados. O npm é o padrão mais seguro, sem configuração. O Yarn (esp. Berry/PnP) é rápido, mas adiciona nuances de configuração.
Faça cache de qualquer forma
Qualquer que seja a escolha, faça cache do store com chave baseada no lockfile - isso acelera mais do que a escolha da ferramenta.
O veredito
Quer velocidade máxima de CI e pouco disco: pnpm. Quer segurança sem configuração: npm. Em qualquer um deles, cache + runners mais rápidos importam mais que a ferramenta.