npm, pnpm, yarn e bun: o guia sem filtros para escolher o seu gestor de pacotes em 2026
No ecossistema JavaScript, poucas decisões geram tanto debate quanto a escolha do gestor de pacotes. npm, pnpm, yarn e bun são as quatro principais opções em 2026, e cada uma tem uma filosofia, um desempenho e um conjunto de compromissos diferentes.
Este artigo não vai dizer qual usar. O que vai fazer é colocar toda a informação sobre a mesa, com dados reais, benchmarks atualizados e experiências documentadas de programadores que trabalharam com estas ferramentas em projetos reais. No final, a decisão é sua.
O panorama em 2026: quatro abordagens, um mesmo objetivo
| Gestor | Filosofia | Versão em destaque | Ano de lançamento |
|---|---|---|---|
| npm | Compatibilidade e estabilidade | npm 11.x | 2010 |
| yarn | Inovação e controlo | yarn 4.x (Berry) | 2016 |
| pnpm | Eficiência e rigor | pnpm 10.x | 2017 |
| bun | Velocidade e tudo-em-um | Bun 1.3 | 2022 |
Cada um resolve o mesmo problema — gerir dependências — de forma radicalmente diferente. O npm prioriza a compatibilidade, mas gera duplicação em disco. O pnpm otimiza o armazenamento através de ligações simbólicas para um repositório central. O Yarn Berry elimina node_modules com Plug'n'Play. O Bun foca-se na velocidade de instalação e em ser um runtime completo.
npm: o padrão que vem com o Node
O npm é o gestor que vem instalado com o Node.js. É o que encontra em todos os tutoriais, em todos os pipelines de CI e em todos os Dockerfiles que já copiou e colou.
O bom:
- Está em todo o lado. Não precisa de instalar nada extra. Se tem Node, tem npm.
- Máxima compatibilidade. Funciona com absolutamente todo o ecossistema. Sem surpresas.
- Auditoria de segurança integrada.
npm audité um padrão da indústria. - Melhorou muito. Desde a versão 7 (workspaces) e a 9 (desempenho), o npm já não é o peso morto que era.
O mau:
- Continua a ser o mais lento. Em instalações a frio (cold install), o npm é o mais lento dos quatro.
- Consumo de disco.
node_modulescontinua a crescer para tamanhos aterrorizantes. O famoso meme donode_modulesexiste por uma razão. - Dependências fantasmas. O hoisting plano do npm permite que o seu código use pacotes que não estão declarados no seu
package.json, o que pode causar falhas silenciosas.
Desempenho no mundo real: Num monorepo real com duas aplicações Next.js e um pacote partilhado, o npm demorou 87 segundos numa instalação a frio e ocupou 1.4 GB em node_modules.
Para quem é? Para projetos pequenos, para quem não quer pensar em ferramentas adicionais, ou para equipas que priorizam a compatibilidade acima de tudo.
yarn: o veterano que se reinventou
O yarn nasceu em 2016, criado pelo Facebook (agora Meta), para resolver os problemas do npm: velocidade, fiabilidade e lockfiles determinísticos.
O bom:
- Yarn Classic (v1) é estável e testado. Está em milhares de projetos open source.
- Yarn Berry (v4) é radical. Plug'n'Play (PnP) elimina
node_modulescompletamente, usando um ficheiro.pnp.cjspara resolver dependências. - Instalações quase instantâneas. Com PnP e cache, as reinstalações são praticamente imediatas.
- Arquitetura de plugins. Extremamente extensível.
- Lockfiles mais limpos.
yarn.locké mais fácil de rever em diffs do quepackage-lock.json.
O mau:
- Yarn Berry tem problemas de compatibilidade. Muitas ferramentas assumem que
node_modulesexiste. Pode passar horas a depurar configurações. - É o mais difícil de justificar em 2026. Segundo vários programadores, o Yarn Berry é o que mais custa a defender hoje em dia.
- Fragmentação. Há o Yarn Classic (v1) e o Yarn Berry (v2+), que são praticamente produtos diferentes.
Desempenho no mundo real: No mesmo monorepo, o Yarn Berry em modo PnP demorou 72 segundos numa instalação a frio e ocupou 890 MB. É mais rápido que o npm, mas mais lento que o pnpm.
Para quem é? Para equipas que já usam Yarn e estão contentes, ou para programadores que querem experimentar PnP em projetos novos com tooling moderno.
pnpm: o que chegou para ficar
O pnpm é o gestor que está a ganhar mais terreno em 2026. A sua abordagem é elegante: armazena cada versão de cada pacote apenas uma vez num repositório global, e usa ligações físicas (hard links) para os fazer aparecer em cada projeto.
O bom:
- Economia massiva de disco. Instalar lodash em 10 projetos — só existe em disco uma vez.
- Instalações muito mais rápidas. O pnpm é aproximadamente 53% mais rápido que o npm em instalações a frio.
- Deteção de dependências fantasmas. O pnpm é rigoroso por padrão: só pode importar o que está declarado no seu
package.json. - Monorepos. O suporte a workspaces do pnpm é provavelmente o melhor do mercado.
- Compatível. Usa a estrutura tradicional de
node_modules, por isso não tem os problemas de compatibilidade do Yarn PnP.
O mau:
- O hoisting rigoroso pode magoar. Se uma dependência usar outra sem a declarar (comum no ecossistema npm), o pnpm falhará com um erro críptico.
- Curva de aprendizagem. O modelo de
node_modulesdo pnpm é diferente; alguns programadores precisam de tempo para se adaptar. - Algumas ferramentas assumem hoisting plano. Podem precisar de ajustes no
.npmrc.
Desempenho no mundo real: No mesmo monorepo, o pnpm demorou 41 segundos numa instalação a frio e ocupou 610 MB. Metade do disco do npm e 43% mais rápido.
Para quem é? Para projetos de médio a grande porte, monorepos, ou qualquer pessoa que queira poupar espaço em disco e tempo em CI.
bun: o recém-chegado que promete velocidade
O Bun não é apenas um gestor de pacotes. É um runtime completo que inclui gestor de pacotes, empacotador, executor de testes e muito mais, tudo num único binário.
O bom:
- Extremamente rápido.
bun installé muitas vezes 10‑30 vezes mais rápido que o npm em instalações a frio. Algumas fontes falam em até 25 vezes mais rápido. - Zero configuração. Suporta TypeScript, JSX e ESM de forma nativa, sem passos de compilação.
- Tudo num só. Não precisa de instalar ferramentas separadas para bundling, testes ou execução de scripts.
- Runtime alternativo. Corre sobre o JavaScriptCore (o motor do Safari), o que lhe dá vantagens no tempo de arranque e na velocidade HTTP.
O mau:
- Ecossistema menos maduro. Embora tenha melhorado muito, nem todo o ecossistema Node.js é 100% compatível. Estima-se uma cobertura de 98% das APIs mais usadas.
- Não é o padrão. Não vem com o Node. Precisa de o instalar explicitamente.
- Menos testado em produção. Embora esteja cada vez mais seguro para produção em 2026, ainda não tem o historial do npm ou do pnpm.
Desempenho: O Bun é o mais rápido em instalações a frio. Com cache quente, as reinstalações são praticamente instantâneas.
Para quem é? Para projetos novos onde queira velocidade máxima e não se importe com alguma aresta ocasional. Para equipas que queiram unificar a toolchain.
A tabela definitiva (julho de 2026)
| Característica | npm | yarn (Berry) | pnpm | bun |
|---|---|---|---|---|
| Vem com Node | ✅ | ❌ | ❌ | ❌ |
| Velocidade (cold install) | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Economia de disco | ⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Compatibilidade | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Monorepo | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Deteção de dependências fantasmas | ❌ | ✅ (PnP) | ✅ | ✅ |
| Curva de aprendizagem | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
Fonte: Com base em benchmarks do pnpm.io (atualizados para julho de 2026) e experiências documentadas em monorepos reais.
A decisão é sua
Não há um "melhor" gestor de pacotes. Há gestores que se adaptam melhor a diferentes contextos.
- Projeto pequeno ou a aprender? O npm é perfeito. Não precisa de complicar.
- Monorepo grande? O pnpm é a opção mais recomendada pela comunidade.
- Quer velocidade máxima e está a começar um projeto novo? O Bun é uma opção cada vez mais sólida.
- Já usa Yarn e está contente? Não há razão para mudar.
- Quer experimentar o que há de mais recente? Experimente o Bun num projeto secundário.
O que está claro em 2026 é que o pnpm ganhou um terreno significativo como a opção mais equilibrada para a maioria dos projetos. O Yarn Berry é o mais difícil de justificar hoje. O npm continua a ser o rei da compatibilidade. O Bun é o futuro promissor.
A escolha, como sempre, depende de si e do seu contexto.
Enquete
Queremos saber qual gestor de pacotes a comunidade CodeWithBotina está a usar em 2026.
Título da enquete (inglês):Which JavaScript package manager does your team primarily use in 2026?
Descrição da enquete (inglês):From npm (the default) to pnpm (the efficient one), Yarn Berry (the innovator), and Bun (the speed king). Vote for the package manager that powers your projects. See how other developers are choosing, and discover the full post where we analyze each tool's strengths, weaknesses, and real-world benchmarks.
Referências
- Dev.to. (2026, January 9). pnpm vs npm vs yarn vs Bun: The 2026 Package Manager Showdown. https://dev.to/pockit_tools/pnpm-vs-npm-vs-yarn-vs-bun-the-2026-package-manager-showdown-51dc
- Dev.to. (2026, March 12). NPM vs Yarn vs pnpm vs Bun: Which Package Manager Should You Use in 2026?. https://dev.to/dudychmarian/npm-vs-yarn-vs-pnpm-vs-bun-which-package-manager-should-you-use-in-2026-3j2o
- Dev.to. (2026, May 10). pnpm vs npm vs yarn in 2026: I ran all three on my real monorepo and it forced me to change my mind. https://dev.to/jtorchia/pnpm-vs-npm-vs-yarn-in-2026-i-ran-all-three-on-my-real-monorepo-and-it-forced-me-to-change-my-mind-9mc
- HackerNoon. (2026, June 15). Comparing Dependency Management Models of npm, Yarn, pnpm, Bun, and Deno. https://hackernoon.com/lite/comparing-dependency-management-models-of-npm-yarn-pnpm-bun-and-deno
- Medium. (2026, March 22). npm vs Yarn vs pnpm vs Bun — Which Package Manager Should You Use in 2026?. https://medium.com/@pritanshudwivedi/npm-vs-yarn-vs-pnpm-vs-bun-which-package-manager-should-you-use-in-2026-1458c2c2b961
- Medium. (2026, February 25). Yarn vs npm: Which Package Manager Should You Use in 2026?. https://medium.com/@sreejith.velappan/yarn-vs-npm-which-package-manager-should-you-use-in-2026-9c52ad89a32c
- pnpm.io. (2026, July 6). Benchmarks of JavaScript Package Managers. https://pnpm.io/ru/benchmarks
- Medium. (2026, May 7). The Case for Bun in 2026: Where It Works and Where It Doesn’t. https://medium.com
Carregando reacoes...
Comentarios (0)
Carregando sessao...
Ainda nao ha comentarios. Seja o primeiro a comentar.