15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
18.10.2024

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étodoIdeal ParaFlexibilidade de VersãoRoot NecessárioNotas
Instalador oficial `.pkg` / `.msi`Configuração local rápida, iniciantesVersão única apenasSimPolui 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 CILimitadaSimFrequentemente fornece versões desatualizadas
Repositório binário NodeSourceServidores Linux, fixação LTS previsívelPor instalaçãoSimMantido pelo NodeSource; adequado para produção
`nvm` (Node Version Manager)Desenvolvimento multi-projetoTotal, por shellNãoPadrão de ouro para estações de trabalho de desenvolvimento
`fnm` (Fast Node Manager)Pipelines CI sensíveis ao desempenhoTotalNãoBaseado em Rust, significativamente mais rápido que o nvm
Docker / imagem de containerBuilds isoladas e reproduzíveisTotal, por containerDependeIdeal 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 nodejs

Fedora / CentOS / RHEL / Rocky Linux:

curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejs

Após a instalação, verifique tanto o runtime como o gestor de pacotes incluído:

node -v
npm -v

Armadilha 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 nodejs

Mé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 | bash

O instalador acrescenta a inicialização de shell necessária ao ~/.bashrc, ~/.zshrc, ou ~/.profile. Recarregue o seu shell:

source ~/.bashrc

Instalar a versão LTS mais recente:

nvm install --lts

Instalar uma versão específica por número:

nvm install 20.14.0

Alternar entre versões instaladas:

nvm use 18
nvm use 20

Definir um padrão persistente para novas sessões de shell:

nvm alias default 20

Listar todas as versões instaladas localmente:

nvm ls

Verificar a versão ativa:

node -v
npm -v

Caso 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 use

Mé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 npm

No Fedora / RHEL 9+:

sudo dnf install nodejs

Instalar 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 node

Para instalar uma versão principal específica (ex.: Node.js 20 LTS):

brew install node@20
brew link --overwrite node@20

Verificar:

node -v
npm -v

Armadilha 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 -v

Instalar 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 -v

Importante: 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-lts

Verificar:

node -v
npm -v

Mé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 -v

Windows 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çamentoCadênciaDuração do SuporteCaso 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 mesesTeste de funcionalidades, autores de bibliotecas
**Maintenance LTS**Lançamentos LTS em envelhecimentoApenas correções de segurançaSistemas 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 node

O 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 nodejs

Com Homebrew no macOS:

brew update && brew upgrade node

Com Chocolatey no Windows:

choco upgrade nodejs-lts

Gerir 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 typescript

Listar todos os pacotes instalados globalmente:

npm list -g --depth=0

Remover um pacote global:

npm uninstall -g yarn

Pacotes 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 Linux
  • typescript — Compilador TypeScript (tsc)
  • nodemon — Observador de ficheiros de desenvolvimento que reinicia automaticamente o processo Node.js em alterações de código
  • dotenv-cli — Carrega ficheiros .env para 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/cache

Desativar a geração de package-lock.json (apenas se a sua equipa utilizar yarn.lock exclusivamente):

npm config set package-lock false

Definir a variável de ambiente do Node.js para produção:

export NODE_ENV=production

Adicione 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 save

Executar 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 -v deve retornar um número principal par dentro da janela de suporte ativo)
  • O método de instalação corresponde ao ambiente: nvm em máquinas de desenvolvimento; NodeSource ou container em servidores
  • A versão npm está atualizada: Execute npm install -g npm@latest após instalar o Node.js — o npm incluído frequentemente não é o mais recente
  • NODE_ENV está definido: Verifique que echo $NODE_ENV retorna production em todos os ambientes de servidor
  • O gestor de processos está configurado: pm2 list mostra a sua aplicação a correr e pm2 startup foi 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=0 mostra apenas ferramentas CLI essenciais
  • .nvmrc está 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.

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar