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.
|
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 321,75 MT/mês (plano de 3 anos, com cupão) Ver planos |