npm, yarn ou pnpm: qual usar, e porque se mantém um só ficheiro de bloqueio

O npm, o yarn e o pnpm fazem o mesmo trabalho: instalar as bibliotecas de que o projecto precisa. A resposta curta: use o gestor com que o projecto foi criado, e só esse. O sinal é o ficheiro de bloqueio que já lá está. Misturar gestores é 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 projecto

Ficheiro de bloqueio Gestor Instalação exacta, 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 ficheiro de bloqueio regista a versão exacta 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 projecto 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 do ecrã) 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 partilhada 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 projecto pede. No package.json o campo packageManager, quando existe, indica o gestor e a versão.
2 Active 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 gestor pelo método da documentação dele. Na dúvida, fique com o npm, que já lá está.
3 Instale a partir do ficheiro 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 gestor, apague o ficheiro de bloqueio antigo e a pasta node_modules, instale com o novo, e guarde o ficheiro novo. Nunca deixe dois ficheiros de bloqueio no mesmo projecto.
Dois ficheiros 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 à equipa.
Numa conta partilhada, olhe para o número de ficheiros. Qualquer gestor enche a node_modules de milhares de ficheiros 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 actualizar o Node.js num VPS: pacote da distribuição, NodeSource ou nvm

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?