Skip to content
Latchkey

pnpm vs Yarn: Qual Gerenciador de Pacotes para CI?

Ambos são alternativas modernas ao npm, mas o pnpm e o Yarn fazem trade-offs diferentes em disco, rigor e workspaces.

O pnpm usa um store endereçado por conteúdo com node_modules por symlinks. O Yarn (Classic ou o mais novo Berry) oferece instalações rápidas, workspaces e o opcional Plug'n'Play. No CI a diferença aparece no uso de disco e no comportamento do cache.

pnpmYarn
Layout do node_modulesStore endereçado por conteúdo via symlinksFlat (Classic) ou PnP (Berry)
Uso de discoBaixo (store compartilhado)Maior (Classic), baixo (PnP)
RigorEstrito (sem deps fantasma)Frouxo (Classic), estrito (PnP)
Install no CIpnpm i --frozen-lockfileyarn install --immutable
Workspaces de monorepoForteForte

No CI

O pnpm tende a vencer em disco e na velocidade de install com store quente, e sua resolução estrita pega bugs de dependência fantasma antes que cheguem à produção. O Yarn Berry com PnP também pode ser extremamente rápido e enxuto, mas o PnP muda a resolução de módulos de formas que alguns pacotes não esperam, então teste sua árvore de dependências. O Yarn Classic é o drop-in de menor atrito se você já o usa.

Cacheie o store

Para o pnpm, cacheie o diretório do store (pnpm store path) com chave em pnpm-lock.yaml. Para o Yarn, cacheie a pasta de cache do Yarn com chave em yarn.lock. Cachear o store importa mais para o tempo de relógio do que a escolha da ferramenta em si.

O veredito

Quer pouco disco e resolução estrita: pnpm. Quer um drop-in rápido ou o modelo zero-install do PnP e já está no Yarn: Yarn. Faça commit do lockfile e cacheie o store em qualquer um.

Guias relacionados