Skip to content
Latchkey

Yarn Berry vs pnpm: gerenciadores de pacotes JS modernos

Escolha o pnpm para um node_modules rápido e eficiente em disco, via um store endereçável por conteúdo com isolamento estrito de dependências; escolha o Yarn Berry se quiser Plug n Play, zero-installs e seu sistema de plugins e constraints.

Yarn Berry (Yarn 2 e posteriores) e pnpm são alternativas rápidas e modernas ao npm, com forte suporte a monorepo. Eles diferem mais na forma como posicionam dependências em disco. O pnpm usa um store global endereçável por conteúdo e symlinks, gerando um node_modules estrito e não plano. O Yarn Berry usa por padrão o Plug n Play (PnP), que pode dispensar totalmente o node_modules.

Yarn Berrypnpm
Modelo de instalaçãoPnP (padrão) ou linker node-modulesSymlinks a partir de um store global
Uso de discoBaixo (cache de zero-installs)Baixo (store com hard links)
RigidezEstrito sob PnPEstrito (sem deps fantasmas)
WorkspacesSim (maduro)Sim (maduro)
CompatibilidadePnP pode exigir patches para algumas ferramentasAlta (layout real de node_modules)
ExtrasPlugins, constraints, zero-installspnpm-lock.yaml, catalogs

Onde cada um realmente se destaca

O pnpm vence em ampla compatibilidade porque seu node_modules com symlinks parece um layout normal para a maioria das ferramentas, ainda impedindo o acesso a dependências não declaradas (fantasmas). O Yarn Berry vence se você quer os zero-installs do PnP (commitando o cache para que yarn install seja quase instantâneo no CI) mais seu ecossistema de constraints e plugins.

No CI

Ambos fazem bom cache. O pnpm restaura rápido a partir do seu store e pnpm install --frozen-lockfile impõe o lock. O Yarn Berry com zero-installs pode tornar as instalações no CI quase gratuitas porque o cache é commitado, embora isso faça o repositório crescer. Ambos suportam --immutable/--frozen-lockfile para falhar em caso de drift do lockfile, o que você quer no CI.

Ressalvas honestas

O PnP melhora a correção, mas algumas ferramentas presumem um node_modules físico e precisam do linker node-modules ou de patches, o que gera atrito. O pnpm costuma ser a escolha de menos surpresas para toolchains mistas, mas sua rigidez pode revelar bugs reais (deps não declaradas) que uma árvore npm plana escondia.

O veredito

Escolha o pnpm para o caminho mais suave até instalações rápidas e estritas que simplesmente funcionam com as ferramentas existentes. Escolha o Yarn Berry se quiser especificamente os zero-installs do PnP ou seus recursos de plugins e constraints, aceitando eventual trabalho de compatibilidade.

Guias relacionados