Controle de versão do Node: Como usar o NVM?

Compartilhe:

Você já teve problemas ao atualizar o Node.js e algum projeto parar de funcionar? Geralmente naquela hora de rodar um npm install informa que você está utilizando uma versçao diferente do Node à do projeto.

É um um problema comum de compatibilidade do Node.js com as versões mais antigas de algumas ferramentas em algum projeto, como o Gulp e Babel. Geralmente os desenvolvedores instalam uma versão mais antiga do Node.js ao invés de arrumar a estrutura responsável pelo build da aplicação.

Mesmo que uma reinstalação dos pacotes fosse a solução, é desperdício de tempo ter que ficar reinstalando tudo em um projeto a cada vez que eu atualizo o Node, sendo que normalmente a alteração que eu tinha que fazer em um projeto antigo seria mudar só uma linha. É preciso, em projetos antigos, manter mais de uma versão do Node.js instalado na minha máquina para que possa rodar facilmente o projeto. Este artigo tem este objetivo com o NVM.

O que é o NVM?

NVM – Node Version Manager (gerenciador de versão do Node), permite que você instale e gerencie diferentes versões do Node. js em sua máquina de forma simples, bem como, proporciona a troca de uma versão para outra com um simples comando no terminal e isso te abre um leque de possibilidades.

Agora vamos iniciar o tutorial, mostrando como instalar o NVM para MacOs, Linux e Windows e como utilizar:

Abre em nova aba

Instalação do NVM (MacOS e Linux)

É recomendado desinstalar qualquer versão do Node.js presente em sua máquina antes de instalar o NVM para evitar colisões.

Para instalar o NVM basta usar o curl ou Wget. Execute no terminal:

$ curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

ou

$ wget-qO-https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

Isso vai executar um script que vai clonar o repositório do NVM e jogar em um diretório chamado ~/.nvm/,que é onde serão instaladas as várias versões do Node.js que quisermos.

A versão do NVM no momento de escrita deste post era a v0.34.0. Para garantir uma versão mais recente,copie esse mesmo comando na página do repositório do NVM no GitHub.

Instalação no MacOS usando Homebrew

Caso queira instalar usando o Homebrew,basta executar o comando $ brew install nvm.

Depois precisamos criar um diretório para o NVM,lugar onde ele fará as instalações das várias versões do Node.js. Para isso basta executar o comando $ mkdir~/.nvm/.

Por último é só configurar as variáveis de ambiente. Abra o arquivo .bash_profile com o comando vim~/.bash_profile e cole o seguinte conteúdo

export NVM_DIR=~/.nvm
source $(brew--prefix nvm)/nvm.sh

E então basta executar source~/.bash_profile.

Instalação do nvm-windows (Windows)

Instalação do nvm-windows (Windows)

Como dito anteriormente,o NVM é só para MacOS e Linux. Você pode conseguir utilizá-lo no Windows usando o WSL (Windows Subsystem for Linux) ou pode usar um outro programa que é o nvm-windows.

A proposta do nvm-windows é funcionar igual ao NVM. Eles oferecem um instalador que você pode baixar pela lista de lançamentos do nvm-windows no repositório do GitHub.

Comandos do NVM (e do nvm-windows)

Caso você tenha acabado de instalar,pode ser necessário reiniciar o seu terminal ou sua máquina.

nvm-windows precisa que o terminal seja iniciado em modo administrador e alguns comandos do nvm ainda não são completamente suportados.

Os comandos são bem simples.

Listar versões instaladas

Para ver as versões que estão instaladas em sua máquina:

$ nvm ls

Listar versões disponíveis para instalação

Este comando lista todas as versões disponíveis para baixar e instalar na sua máquina. Esse número de versão será usado no comando para realizar a instalação.

$ nvm ls-remote

Instalar uma versão

Para instalar usamos o comando install seguido pelo número da versão que queremos (mostrada no comando anterior, ls-remote).

$ nvm install vX.X.X

Basta mudar os X pelos números da versão que quer baixar como v.0.11.5 ou v.12.4.0.

Para instalar a versão mais recente,utilize node no lugar do número da versão:

$ nvm install node

A primeira versão que você instalar será usada por padrão sempre que você abrir o terminal. A versão padrão pode ser alterada depois.

Desinstalar uma versão

O comando uninstall é usado para desinstalar uma versão presente em nossa máquina. É utilizado da mesma maneira que o install

$ nvm uninstall vX.X.X

Usar uma versão do Node.js

Sempre que você abrir o terminal,a versão do Node.js usada é sempre a definida como padrão. Para usar outra versão instalada,execute o comando use seguido pela versão que você quer.

$ nvm use vX.X.X

Para usar a versão mais recente,digite node no lugar da versão:

$ nvm use node

Lembrando que ao abrir um novo terminal,a versão usada será novamente a definida como padrão.

Definir nome para uma versão

Para não ter que ficar chamando uma versão pelo seu número,podemos definir um tipo de apelido para cada versão. Para isso usamos o comando alias e passamos o nome do apelido e a versão que queremos apelidar.

$ nvm alias meunome vX.X.X

Com isso você poderá chamar a versão vX.X.X por meunome,como em:

$ nvm use meunome

Remover um nome de versão

Se você não quiser mais aquele apelido que você deu para uma versão,basta executar o comando unalias seguido pelo apelido que você quer esquecer.

$ nvm unalias meunome

Definir uma versão padrão

Para definir a versão que será usada sempre que você abrir o terminal,use o comando alias passando default como nome e em seguida a versão que você quer que seja a principal.

$ nvm alias default vX.X.X

Para que a versão padrão seja a versão instalada mais recente,basta escrever node no lugar do número da versão:

$ nvm alias default node

Indicação da versão atual

Para saber qual a versão atual do Node.js o terminal está usando,basta executar o comando current.

$ nvm current

Migração de pacotes globais

Quando alteramos a versão do Node.js que está sendo utilizada,a versão do NPM muda junto. Isso significa que se você utiliza algum pacote do NPM globalmente em uma versão,não terá acesso a ele quando estiver usando outra versão.

Para não ter o trabalho de instalar cada pacote global a cada nova instalação do Node.js,basta adicionar --reinstall-packages-from.

Com esse comando podemos,por exemplo,instalar a versão 6 do Node.js e já mandar ele automaticamente instalar os pacotes globais do NPM que instalamos quando estávamos usando a versão 5.

nvm install 6--reinstall-packages-from=5

Como aprendemos até aqui, node é um atalho para indicar a versão mais recente. Caso queira instalar a versão mais recente disponível e já migrar os pacotes globais da versão mais recente que está instalada na sua máquina,basta executar:

nvm install node--reinstall-packages-from=node

No momento esta funcionalidade ainda não está disponível para o nvm-windows,sendo necessária a instalação manual dos pacotes globais sempre que instalar uma nova versão do Node.js.

Definição de versão por projeto

A intenção de usar o NVM é poder ter uma versão do Node.js para cada projeto,mas é muito difícil conseguir lembrar qual a versão foi usada em cada um.

Para isso,basta criar na raiz do projeto um arquivo com o nome .nvmrc e colocar dentro dele o número da versão do Node.js que está sendo utilizada nesse projeto,como:

v12.4.0

Com isso,ao abrir o terminal dentro do projeto e executar o comando nvm use,o NVM vai automaticamente encontrar o arquivo .nvmrc e utilizar a versão indicada.

Conclusão

Eu não costumava ligar para ter várias versões do Node.js em uma mesma máquina,pois sempre conseguia fazer funcionar em versões novas. Mas com o tempo pode acontecer de você ter que mexer em um código antigo e vai desperdiçar tempo arrumando para fazer funcionar caso esteja com uma versão nova.

Não só para linguagens de programação como Ruby e Python,mas outras ferramentas para desenvolvimento também como Unity,prefira sempre usar um gerenciador de versões,pois vai te economizar tempo e trabalho.

LEIA TAMBÉM

Compartilhe:

Ramos da Informática
Ramos da Informáticahttps://ramosdainformatica.com.br
Ramos da Informática é um hub de comunidade sobre linguagens de programação, banco de dados, DevOps, Internet das Coisas, tecnologia da indústria 4.0, Cyber Segurança e Startups.

RECENTES

Claude Sonnet 4.5: Mais Avançado para Programação e Automação

A Anthropic acaba de lançar o Claude Sonnet 4.5,...

AP2 do Google: Desenvolva Pagamentos para agentes de IA

O Google lançou o Agent Payments Protocol (AP2), um...

Curso gratuito de GitHub Copilot para devs e estudantes

A Microsoft abriu as inscrições para o primeiro Bootcamp...

Santander e a Alura oferecem 60.000 bolsas em carreira de tecnologia

Quer dar um salto na sua carreira? O Santander Imersão Digital está...

Google Tradutor desafia o Duolingo com novas ferramentas de aprendizagem de idiomas

O Google está lançando um novo recurso experimental com...

A peça que faltava para agentes de IA autônomos.

Este artigo foi originalmente publicado em: https://www.linkedin.com/newsletters/ezine-dev-ramos-da-inform%25C3%25A1tica-6947960536550526976/ A inteligência...
Newsletter semanal no LinkedIn
EZine Dev Ramos da Informática
Grandes dicas em JavaScript, Node, React, Next, Banco de Dados & IA.
Assinar grátis
Abre em nova aba
spot_img