Quando trabalho com Node.js no Ubuntu, uma das primeiras ferramentas que instalo é o NVM.
NVM significa Node Version Manager. Ele permite instalar, remover e alternar versões do Node.js sem depender da versão disponível no gerenciador de pacotes do sistema.
Isso faz diferença porque projetos diferentes podem exigir versões diferentes. Um projeto legado pode estar em Node 18, uma API nova pode usar Node 22, e um estudo local pode testar uma versão ainda mais recente.
Por que usar NVM?
Instalar Node.js diretamente pelo apt até funciona, mas costuma deixar o ambiente rígido. Com NVM, a versão do Node passa a ser uma decisão do projeto.
Algumas vantagens:
- alternar versões rapidamente;
- evitar conflito entre projetos;
- instalar versões LTS com facilidade;
- manter o Node isolado no usuário atual;
- documentar a versão esperada com
.nvmrc.
Instalando no Ubuntu
Antes de instalar, atualize o sistema e garanta ferramentas básicas:
sudo apt update
sudo apt install -y curl ca-certificates build-essentialDepois, execute o script oficial de instalação:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashFeche e abra o terminal novamente. Se quiser carregar na sessão atual:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"Confirme a instalação:
nvm --versionInstalando o Node LTS
Para instalar a versão LTS mais recente:
nvm install --ltsPara definir essa versão como padrão:
nvm alias default lts/*Verifique:
node -v
npm -vUsando .nvmrc
Em projetos profissionais, gosto de deixar um arquivo .nvmrc na raiz:
22Depois, qualquer pessoa pode entrar no projeto e executar:
nvm useSe a versão ainda não estiver instalada:
nvm installComandos úteis
nvm ls
nvm ls-remote --lts
nvm install 20
nvm use 20
nvm alias default 22
nvm uninstall 18Fechamento
NVM é uma ferramenta simples, mas melhora muito a previsibilidade do ambiente. Para quem trabalha com Node.js, React, Next.js ou NestJS no Linux, é uma base muito boa para evitar problemas de versão antes mesmo de começar a codar.