Como Instalar o Node.js: Um Guia Técnico Completo para Todas as Plataformas
Node.js é um runtime JavaScript de código aberto e multiplataforma, construído sobre o motor V8 do Chrome, que executa código JavaScript fora do ambiente de um navegador. O seu modelo de I/O não bloqueante e orientado a eventos torna-o a escolha dominante para a criação de APIs de alto desempenho, aplicações em tempo real, microsserviços e ferramentas do lado do servidor. Instalar o Node.js corretamente — utilizando o método adequado para o seu sistema operativo e fluxo de trabalho — é a base de um ambiente de desenvolvimento estável e reproduzível.
Este guia abrange todos os principais caminhos de instalação: instaladores oficiais, gestores de pacotes nativos do sistema operativo, as distribuições binárias do NodeSource e nvm (Node Version Manager). Também aborda a gestão de versões, a higiene de pacotes globais e considerações sobre servidores de produção que a maioria dos tutoriais ignora completamente.
Escolher o Método de Instalação Correto
Antes de executar um único comando, compreenda o que cada método realmente oferece — porque a escolha errada cria problemas operacionais reais mais tarde.
| Método | Ideal Para | Flexibilidade de Versão | Root Necessário | Notas |
|---|---|---|---|---|
| — | — | — | — | — |
| Instalador oficial `.pkg` / `.msi` | Configuração local rápida, iniciantes | Versão única apenas | Sim | Polui o PATH do sistema; difícil de mudar de versão |
| Gestor de pacotes do SO (`apt`, `brew`, `yum`) | Instalações em todo o sistema, servidores CI | Limitada | Sim | Frequentemente fornece versões desatualizadas |
| Repositório binário NodeSource | Servidores Linux, fixação LTS previsível | Por instalação | Sim | Mantido pelo NodeSource; adequado para produção |
| `nvm` (Node Version Manager) | Desenvolvimento multi-projeto | Total, por shell | Não | Padrão de ouro para estações de trabalho de desenvolvimento |
| `fnm` (Fast Node Manager) | Pipelines CI sensíveis ao desempenho | Total | Não | Baseado em Rust, significativamente mais rápido que o nvm |
| Docker / imagem de container | Builds isoladas e reproduzíveis | Total, por container | Depende | Ideal para microsserviços e CI/CD |
Regra de decisão principal: Numa estação de trabalho de desenvolvimento, utilize sempre nvm ou fnm. Num servidor Linux de produção, utilize o repositório NodeSource ou uma imagem de container. Nunca utilize o pacote Node.js do gestor de pacotes padrão do SO no Ubuntu/Debian — este fornece rotineiramente versões com anos de atraso em relação ao LTS atual.
Instalar o Node.js no Linux
O Linux é onde a maioria das cargas de trabalho de produção do Node.js realmente corre. Fazer isto corretamente importa mais aqui do que em qualquer outro lugar. Se estiver a implementar num ambiente de VPS Hosting, os métodos seguintes aplicam-se diretamente ao seu servidor remoto.
Método 1: Distribuições Binárias NodeSource (Recomendado para Servidores)
O NodeSource mantém pacotes .deb e .rpm atualizados e assinados que acompanham com precisão as linhas de lançamento LTS e Current do Node.js. Esta é a abordagem mais fiável para servidores Linux de produção.
Ubuntu / Debian:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejsFedora / CentOS / RHEL / Rocky Linux:
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejsApós a instalação, verifique tanto o runtime como o gestor de pacotes incluído:
node -v
npm -vArmadilha crítica: O padrão curl | bash executa um script remoto como root. Em ambientes com requisitos de segurança elevados, descarregue o script primeiro, inspecione-o e depois execute-o:
curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
less nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install -y nodejsMétodo 2: nvm — Node Version Manager (Recomendado para Desenvolvedores)
O nvm instala o Node.js inteiramente no seu diretório home (~/.nvm), não requer sudo, e permite-lhe mudar de versão por projeto ou por sessão de shell. Esta é a ferramenta correta para qualquer estação de trabalho ou servidor multi-tenant onde diferentes aplicações requerem diferentes versões do Node.js.
Instalar o nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashO instalador acrescenta a inicialização de shell necessária ao ~/.bashrc, ~/.zshrc, ou ~/.profile. Recarregue o seu shell:
source ~/.bashrcInstalar a versão LTS mais recente:
nvm install --ltsInstalar uma versão específica por número:
nvm install 20.14.0Alternar entre versões instaladas:
nvm use 18
nvm use 20Definir um padrão persistente para novas sessões de shell:
nvm alias default 20Listar todas as versões instaladas localmente:
nvm lsVerificar a versão ativa:
node -v
npm -vCaso especial — ficheiros .nvmrc: Coloque um ficheiro .nvmrc na raiz do seu projeto contendo apenas a string de versão (ex.: 20.14.0). Executar nvm use dentro desse diretório seleciona automaticamente a versão correta. Isto é essencial para ambientes de equipa onde a divergência de versões causa bugs subtis.
echo "20.14.0" > .nvmrc
nvm useMétodo 3: Gestor de Pacotes do Sistema (Aceitável para Ferramentas, Não para Produção)
Os repositórios padrão apt ou dnf fornecem versões do Node.js que estão frequentemente desatualizadas. Utilize isto apenas para ferramentas não críticas:
sudo apt-get update
sudo apt-get install -y nodejs npmNo Fedora / RHEL 9+:
sudo dnf install nodejsInstalar o Node.js no macOS
Método 1: Homebrew (Recomendado)
O Homebrew é o gestor de pacotes de facto para ambientes de desenvolvimento macOS. Se o Homebrew ainda não estiver instalado, siga as instruções em brew.sh.
brew install nodePara instalar uma versão principal específica (ex.: Node.js 20 LTS):
brew install node@20
brew link --overwrite node@20Verificar:
node -v
npm -vArmadilha do Homebrew: O brew upgrade node irá atualizar para a versão mais recente, o que pode quebrar projetos fixados a uma versão mais antiga. Se gerir múltiplos projetos, utilize também o nvm no macOS — o fluxo de trabalho é idêntico ao Linux.
Método 2: nvm no macOS
Os comandos de instalação e utilização do nvm são idênticos ao Linux. Os utilizadores de macOS com Zsh (o padrão desde o Catalina) devem confirmar que o ~/.zshrc contém o bloco de inicialização do nvm após a instalação:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"Método 3: Instalador .pkg Oficial
Descarregue o instalador .pkg de nodejs.org, execute-o e siga o assistente. Este é o caminho mais simples para utilizadores que precisam de uma única versão do Node.js e não têm planos de mudar. Após a instalação, abra o Terminal e confirme:
node -v
npm -vInstalar o Node.js no Windows
Método 1: Instalador .msi Oficial
Descarregue o instalador Windows (.msi) de nodejs.org. Selecione a versão LTS para trabalho próximo de produção ou Current para experimentar as funcionalidades mais recentes. O instalador regista o Node.js no PATH do sistema automaticamente.
Após a instalação, abra a Linha de Comandos ou o PowerShell e verifique:
node -v
npm -vImportante: Durante o assistente de instalação, existe um passo opcional para instalar o Chocolatey e as ferramentas de compilação para módulos nativos (addons C++). Ative isto se as dependências do seu projeto incluírem pacotes como bcrypt, sharp, ou módulos dependentes de node-gyp. Ignorar este passo causa falhas de compilação enigmáticas mais tarde.
Método 2: Chocolatey
O Chocolatey é um gestor de pacotes para Windows que permite instalações com script e repetíveis — valioso para o aprovisionamento de máquinas de desenvolvimento.
Abra uma Linha de Comandos ou PowerShell elevado (Administrador):
choco install nodejs-ltsVerificar:
node -v
npm -vMétodo 3: nvm-windows
Note que o nvm para Linux/macOS não corre no Windows. O equivalente para Windows é o nvm-windows, um projeto separado com uma interface semelhante.
Descarregue o instalador da página de lançamentos do GitHub do nvm-windows. Após a instalação:
nvm install lts
nvm use lts
node -vWindows Subsystem for Linux (WSL2): Os desenvolvedores que fazem trabalho sério com Node.js no Windows devem considerar fortemente o WSL2 com Ubuntu. Dentro do WSL2, a instalação do nvm para Linux funciona de forma idêntica ao Linux nativo, e a experiência de desenvolvimento é significativamente mais consistente com os ambientes de servidor de produção.
Compreender LTS vs. Current: Qual Versão Instalar
O Node.js segue um calendário de lançamentos previsível que afeta diretamente qual versão deve implementar.
| Tipo de Lançamento | Cadência | Duração do Suporte | Caso de Uso |
|---|---|---|---|
| — | — | — | — |
| **LTS (Long Term Support)** | Versões principais pares (18, 20, 22) | 30 meses no total (12 Ativo + 18 Manutenção) | Aplicações de produção, cargas de trabalho empresariais |
| **Current** | Versões principais ímpares (19, 21, 23) | Apenas 6 meses | Teste de funcionalidades, autores de bibliotecas |
| **Maintenance LTS** | Lançamentos LTS em envelhecimento | Apenas correções de segurança | Sistemas legados em migração |
Regra geral: Implemente sempre LTS em produção. Utilize Current apenas em ambientes de desenvolvimento isolados quando precisar de testar compatibilidade com funcionalidades futuras do Node.js.
Manter o Node.js Atualizado
Versões desatualizadas do Node.js expõem a sua aplicação a vulnerabilidades conhecidas do motor V8, configurações TLS obsoletas e incompatibilidades de dependências. Trate as atualizações do Node.js como manutenção de segurança, não como melhorias opcionais.
Com nvm (todas as plataformas):
nvm install --lts
nvm reinstall-packages <old-version>
nvm alias default nodeO comando nvm reinstall-packages migra os pacotes instalados globalmente da versão antiga para a nova — um detalhe que a maioria dos guias omite e que poupa tempo significativo.
Com NodeSource no Debian/Ubuntu:
sudo apt-get update && sudo apt-get upgrade nodejsCom Homebrew no macOS:
brew update && brew upgrade nodeCom Chocolatey no Windows:
choco upgrade nodejs-ltsGerir Pacotes npm Globais
Os pacotes npm globais instalam ferramentas CLI acessíveis em todo o sistema. Mantenha a lista de instalações globais mínima — as ferramentas específicas de projeto pertencem ao devDependencies, não a instalações globais, para garantir builds reproduzíveis em todos os ambientes.
Instalar um pacote global:
npm install -g yarn
npm install -g pm2
npm install -g typescriptListar todos os pacotes instalados globalmente:
npm list -g --depth=0Remover um pacote global:
npm uninstall -g yarnPacotes globais relevantes para produção:
pm2— Gestor de processos para aplicações Node.js; gere clustering, reinício automático e gestão de logs em servidores Linuxtypescript— Compilador TypeScript (tsc)nodemon— Observador de ficheiros de desenvolvimento que reinicia automaticamente o processo Node.js em alterações de códigodotenv-cli— Carrega ficheiros.envpara configuração específica do ambiente
nvm e pacotes globais: Quando muda de versão do Node.js com nvm, os pacotes globais instalados na versão anterior não ficam automaticamente disponíveis. Reinstale-os ou utilize nvm reinstall-packages <previous-version> para os migrar.
Pós-Instalação: Configurar o npm para Ambientes de Produção
Uma instalação limpa do Node.js requer alguns passos de configuração adicionais antes de estar pronta para produção.
Definir o registo npm (opcional, para registos privados ou mirrors):
npm config set registry https://registry.npmjs.org/Configurar o diretório de cache npm (relevante em servidores com espaço /tmp limitado):
npm config set cache /path/to/custom/cacheDesativar a geração de package-lock.json (apenas se a sua equipa utilizar yarn.lock exclusivamente):
npm config set package-lock falseDefinir a variável de ambiente do Node.js para produção:
export NODE_ENV=productionAdicione isto ao /etc/environment ou ao ficheiro de unidade systemd da sua aplicação em servidores Linux para garantir que o Express.js, Next.js e outros frameworks ativam as suas otimizações de produção.
Se estiver a executar aplicações Node.js num Servidor Dedicado, configure o pm2 como um serviço systemd para garantir que a sua aplicação reinicia após reboots:
pm2 start app.js --name "my-app"
pm2 startup systemd
pm2 saveExecutar o Node.js Atrás de um Proxy Reverso
Em servidores de produção, as aplicações Node.js nunca devem ser expostas diretamente na porta 80 ou 443. Utilize o Nginx ou o Apache como proxy reverso e termine o TLS na camada do proxy. Esta é uma decisão de arquitetura crítica que o passo de instalação diretamente possibilita.
Uma configuração mínima do Nginx para uma aplicação Node.js a correr na porta 3000:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}Combine isto com um certificado TLS válido. Os Certificados SSL são essenciais para qualquer aplicação Node.js que trate dados de utilizadores, tokens de autenticação ou pedidos API — não são opcionais. O Let’s Encrypt via certbot é a opção gratuita padrão; os certificados comerciais são adequados para implementações empresariais.
Node.js em Alojamento Partilhado vs. VPS
Uma questão que surge frequentemente: o Node.js pode correr em alojamento partilhado?
Os ambientes de Alojamento Web Partilhado padrão não suportam o Node.js de forma significativa. O alojamento partilhado foi concebido para aplicações PHP e não fornece acesso shell, gestão de processos persistentes ou a capacidade de se ligar a portas personalizadas — tudo o que o Node.js requer.
Para qualquer implementação real de Node.js, precisa no mínimo de um plano de VPS Hosting. Um VPS dá-lhe acesso root, um gestor de processos persistente como o pm2, e controlo total sobre a versão do Node.js e a configuração do runtime. Se precisar de um painel de controlo gerido juntamente com o seu ambiente Node.js, um VPS com cPanel oferece um meio-termo entre o acesso VPS puro e o alojamento gerido.
Para cargas de trabalho Node.js com uso intensivo de computação — inferência de machine learning, transcodificação de vídeo ou processamento de dados em grande escala — um VPS padrão pode não ser suficiente. O GPU Hosting fornece a aceleração de hardware que os processos Node.js limitados pela CPU não conseguem alcançar por si próprios.
Lista de Verificação de Pontos-Chave Técnicos
Utilize isto como lista de verificação pré-implementação:
- Seleção de versão: Confirme que está a executar uma versão LTS ativa (
node -vdeve retornar um número principal par dentro da janela de suporte ativo) - O método de instalação corresponde ao ambiente:
nvmem máquinas de desenvolvimento; NodeSource ou container em servidores - A versão npm está atualizada: Execute
npm install -g npm@latestapós instalar o Node.js — o npm incluído frequentemente não é o mais recente NODE_ENVestá definido: Verifique queecho $NODE_ENVretornaproductionem todos os ambientes de servidor- O gestor de processos está configurado:
pm2 listmostra a sua aplicação a correr epm2 startupfoi executado - O proxy reverso está em funcionamento: O Node.js não está diretamente exposto na porta 80/443
- O TLS é terminado no proxy: O certificado válido está instalado e os redirecionamentos HTTPS estão aplicados
- A lista de pacotes globais é mínima:
npm list -g --depth=0mostra apenas ferramentas CLI essenciais .nvmrcestá comprometido no repositório: Garante que todos os membros da equipa e pipelines CI utilizam a mesma versão do Node.js- As atualizações de segurança são automatizadas: Um cron job ou pipeline CI verifica mensalmente novos patches LTS
FAQ
Qual é a diferença entre Node.js LTS e Current, e qual devo instalar?
Os lançamentos LTS (Long Term Support) são versões principais pares (18, 20, 22) suportadas durante 30 meses com patches de segurança e estabilidade. Os lançamentos Current são versões principais ímpares suportadas apenas durante 6 meses. Instale LTS para qualquer trabalho de produção ou desenvolvimento em equipa. Utilize Current apenas para experimentação de funcionalidades de curto prazo.
Por que razão o nvm mostra “command not found” após a instalação?
O instalador do nvm acrescenta código de inicialização ao ficheiro RC do seu shell (~/.bashrc ou ~/.zshrc), mas a sessão de terminal atual não o recarregou. Execute source ~/.bashrc (ou source ~/.zshrc para Zsh), ou abra uma nova janela de terminal. Se o problema persistir, verifique manualmente que o bloco de inicialização do nvm existe no final do seu ficheiro RC.
Posso executar múltiplas versões do Node.js simultaneamente no mesmo servidor?
Sim, com o nvm. Cada versão é instalada no seu próprio diretório em ~/.nvm/versions/. Pode mudar a versão ativa por sessão de shell com nvm use <version>, ou por projeto utilizando um ficheiro .nvmrc. Diferentes processos a executar diferentes versões do Node.js podem coexistir sem conflito.
Por que razão não devo instalar o Node.js a partir do repositório apt padrão do Ubuntu/Debian?
Os repositórios padrão do Ubuntu e Debian fornecem versões do Node.js que estão frequentemente duas a quatro versões principais atrás do LTS atual. Por exemplo, o Ubuntu 22.04 fornece o Node.js 12 por padrão — uma versão que atingiu o fim de vida em 2022. Utilize sempre o repositório NodeSource ou o nvm para obter uma versão atual e suportada.
Como desinstalo completamente o Node.js e começo do zero?
O método depende de como foi instalado. Para instalações NodeSource: sudo apt-get remove nodejs && sudo apt-get autoremove. Para o nvm: nvm uninstall <version> para versões específicas, ou elimine o diretório ~/.nvm inteiramente e remova as linhas de inicialização do seu ficheiro RC. Para o Homebrew: brew uninstall node. Para o instalador oficial no macOS/Windows, utilize o desinstalador de aplicações padrão do sistema e remova manualmente quaisquer diretórios residuais em /usr/local/lib/node_modules ou %AppData%npm.
