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.
|
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 |