pnpm vs npm: o que realmente muda

pnpm vs npm

pnpm vs npm: armazenamento, lockfiles, workspaces e comandos | We.Inc

Como pnpm e npm armazenam pacotes, travam versões e rodam monorepos, um tradutor pesquisável de comandos npm para pnpm e os passos exatos para migrar um projeto com segurança.

O npm copia cada pacote para o node_modules de cada projeto e os eleva em uma estrutura plana. O pnpm mantém um único store endereçado por conteúdo no disco, cria hard links dos arquivos a partir dele e coloca só as suas dependências diretas no topo do node_modules. Isso economiza espaço em disco e impede que o código importe pacotes que nunca declarou. A maioria dos comandos tem equivalente direto.

Principais diferenças

As duas ferramentas leem o mesmo package.json e instalam do mesmo registry, então a escolha depende da estrutura, da velocidade das instalações repetidas, das ferramentas para monorepo e do nível de rigor. Abaixo está como cada uma armazena os pacotes, um tradutor para os comandos que você já conhece e os passos para levar um projeto existente do npm para o pnpm.

Perguntas frequentes

O pnpm é mais rápido que o npm?

O pnpm muitas vezes reaproveita arquivos que já estão no seu store, o que ajuda nas instalações repetidas na mesma máquina. A velocidade depende do estado do cache, da rede e do tamanho do projeto, então meça os dois no seu próprio projeto em vez de confiar em um benchmark publicado.

Posso usar o pnpm em um projeto que tem package-lock.json?

Sim. Rode pnpm import para gerar um pnpm-lock.yaml a partir de package-lock.json, npm-shrinkwrap.json ou yarn.lock, depois apague o lockfile antigo e o node_modules e rode pnpm install.

Por que o meu app não encontra um módulo depois de mudar para o pnpm?

O seu código, ou uma dependência, importa um pacote que não está listado no próprio package.json. A estrutura plana do npm escondia esse erro. Adicione o pacote que falta como dependência de quem o importa.

O pnpm precisa do Node.js instalado?

A documentação de instalação do pnpm descreve o pnpm 12 como um executável nativo que não precisa do Node.js para rodar. Os scripts do seu projeto, claro, continuam precisando do Node.js.

Qual deles um iniciante deve usar?

O npm, porque vem com o Node.js e quase todo tutorial o usa. Passe para o pnpm quando tiver um monorepo, muitos projetos na mesma máquina ou quiser a estrutura de node_modules mais rigorosa.

Como cada ferramenta armazena os pacotes

Workspaces e monorepos

Migrar um projeto do npm para o pnpm

Passos da migração

O pnpm import lê o lockfile do npm, então você mantém as versões que já testou. Rode os seus testes antes de fazer commit.

Cada pasta que corresponder aqui vira um pacote do workspace. Coloque o arquivo na raiz do repositório.

Dependendo de um pacote local

workspace:* sempre resolve para a cópia local de ui em vez de uma versão do registry.

Tradutor de comandos npm para pnpm

Digite um comando npm

npm install -D vite

Equivalente em pnpm

Nenhuma correspondência direta. A maioria dos outros comandos do npm mantém o mesmo nome no pnpm.

Comandos npm e os seus equivalentes em pnpm

Copiar

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site