npm, yarn ou pnpm: qual usar, e por que se mantém um só arquivo de bloqueio

Node.js, Python e DockerNode.js e JavaScript··· 1.030 visualizações· 3 min de leitura

O npm, o yarn e o pnpm fazem o mesmo trabalho: instalar as bibliotecas de que o projeto precisa. A resposta curta: use o gerenciador com que o projeto foi criado, e só esse. O sinal é o arquivo de bloqueio que já lá está. Misturar gerenciadores é a forma mais fácil de ter um site que funciona no seu computador e falha no servidor, porque cada um resolve as versões à sua maneira.

Como saber qual é o do seu projeto

Arquivo de bloqueio Gerenciador Instalação exata, para repetir
package-lock.json npm npm ci
yarn.lock yarn yarn install --frozen-lockfile (no yarn clássico)
pnpm-lock.yaml pnpm pnpm install --frozen-lockfile

O arquivo de bloqueio registra a versão exata de cada biblioteca que funcionou. Quem instala a partir dele obtém o mesmo que você testou; quem instala sem ele recebe as versões mais recentes que o package.json permite, e isso pode ser outra coisa. Guarde-o sempre no repositório.

No cPanel

O botão «Run NPM Install» do «Setup Node.js App» usa o npm. Se o seu projeto usa yarn ou pnpm, tem duas saídas honestas: compilar no seu computador e enviar só o resultado, ou, se a conta tem terminal, entrar no ambiente da aplicação (o comando está no topo da tela) e confirmar com yarn -v ou pnpm -v se a ferramenta existe antes de contar com ela. Não instale ferramentas globais com sudo: numa conta compartilhada não há root. O artigo Node.js no cPanel: escolher a versão e usar o npm explica o ambiente.

Num VPS, passo a passo

1 Veja o que o projeto pede. No package.json o campo packageManager, quando existe, indica o gerenciador e a versão.
2 Ative o Corepack, que vem com a maioria das versões do Node e instala o yarn ou o pnpm certos: corepack enableSe o seu Node não o trouxer, instale o gerenciador pelo método da documentação dele. Na dúvida, fique com o npm, que já lá está.
3 Instale a partir do arquivo de bloqueio, com o comando da tabela acima, e não com um simples install quando quer repetir um estado conhecido.
4 Se mudar de gerenciador, apague o arquivo de bloqueio antigo e a pasta node_modules, instale com o novo, e guarde o arquivo novo. Nunca deixe dois arquivos de bloqueio no mesmo projeto.
Dois arquivos de bloqueio, duas verdades. Se o repositório tem package-lock.json e yarn.lock, cada pessoa e cada servidor acaba com versões diferentes, e o erro «aqui funciona» aparece sem causa visível. Escolha um, apague o outro e diga à equipe.
Numa conta compartilhada, olhe para o número de arquivos. Qualquer gerenciador enche a node_modules de milhares de arquivos pequenos, e a conta tem um limite de inodes: os limites de que ninguém fala. Instalar só o que a produção precisa (npm ci --omit=dev) ajuda. Se a instalação falhar, veja erros do npm install.

Precisa de um servidor onde possa instalar as ferramentas que quiser? Veja os VPS.

Ver os servidores VPS

VEJA TAMBÉM

npm install falha com EACCES, ERESOLVE ou falta de memória

Node.js no cPanel: escolher a versão e usar o npm

Instalar ou atualizar o Node.js num VPS: pacote da distribuição, NodeSource ou nvm

PRODUTO RECOMENDADO

Hospedagem de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde R$ 36,30/mês (plano de 3 anos, com cupom)

Ver planos
Esta resposta foi útil? Sua resposta nos ajuda a melhorar este artigo.