Node.JS: Descomplicando o trabalho com diferentes versões

Node.JS: Descomplicando o trabalho com diferentes versões
Jonilson Sousa
Jonilson Sousa

Compartilhe

Introdução

Acho que todos já passamos pelo problema de ter que trabalhar com várias versões de alguma ferramenta, bem foi isso que aconteceu com o Node.JS, e que me fez escrever como podemos trabalhar com versões diferentes do Node.JS na mesma máquina de maneira simples e rápida com um ou dois comandos no terminal apenas.

Banner da promoção da black friday, com os dizeres: A Black Friday Alura está chegando. Faça parte da Lista VIP, receba o maior desconto do ano em primeira mão e garanta bônus exclusivos. Quero ser VIP

O problema das versões

Precisei utilizar a versão 10 do Node.JS, para ser mais exato a versão 10.16.3 para fazer algumas atualizações em um projeto que já tinha feito a um tempo atrás.

Porém, eu estava usando o Node.JS na versão 13.5.0, porque eu estava testando e experimentando algumas coisas novas que tem nessa versão, contudo não vamos falar sobre o que há de novo em cada versão do Node.JS aqui, isso é assunto para outros artigos.

Bem como você já deve ter imaginado, tive alguns obstáculos nesse momento, eu poderia remover a versão mais atual e instalar a versão anterior que era a usada no projeto, porém eu ainda gostaria de continuar a testar algumas coisas na nova versão, e então o que fazer? A resposta é NVM.

O que é o NVM?

O NVM ou Node Version Manager é um gerenciador de versões do Node.JS, bem como vocês já podem imaginar ele é responsável por gerenciar as versões instaladas na nossa máquina de desenvolvimento.

O NVM foi criado “instalado por usuário e invocado por shell”, ou seja, tudo é feito nele usando o terminal do seu sistema e temos algumas opções como sh, dash, ksh, zsh, bash, que atende quase todos os desenvolvedores e desenvolvedoras, e também pode ser usado em sistemas Unix e macOS. Também é possível utilizar no Windows através da ferramenta WSL.

O que é o Windows WSL? Confira neste artigo o que é, como instalar e como utilizar esta ferramenta super útil para executar comandos Linux no ambiente Windows.

O que devemos realmente entender é que o NVM pode baixar várias versões diferentes do Node.JS na nossa máquina. Agora que já sabemos o que é o NVM, vamos por a mão na massa!

Experimentando o NVM

Como já mencionei é muito simples utilizar o NVM, porém antes precisamos instalá-lo na máquina, para isso poderíamos usar o comando:

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

E esse comando tentará adicionar o seguinte conteúdo:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

No nosso arquivo de usuário, que geralmente é ~/.bash_profile, ~/.zshrc, ~/.profile, ou ~/.bashrc, se já estiver no arquivo, então tudo certo, podemos usar. Se não, você pode adicionar manualmente. E pode também acessar a documentação na página do repositório oficial do GitHub que vai encontrar mais opções lá.

Tudo pronto, e depois disso como podemos usar o NVM, é simples, como mencionei antes, podemos executar o comando nvm ls-remote para listar as versões do Node.JS:

versões listadas no node.js

E para fazer o download de uma versão específica, podemos usar o comando nvm install <versão> como na imagem abaixo:

download de uma versão específica no node.js

Mas já que podemos ter várias versões na nossa máquina, nada mais justo do que sermos capazes de listar essas versões, e para isso usamos o comando nvm ls:

comando nvm ls

Mas meu problema era que eu estava usando a versão 13.5.0 e queria usar a 10.16.3, que já fiz o download anteriormente, então podemos usar o comando use v10.16.3 para ativar essa versão:

comando de ativação da versão 10.16.3

Para saber mais

Porque não usar Docker?

Atualmente a moda é usar o Docker, e realmente é muito bom, facilitam as coisas, porém você pode pensar, porque então não usá-lo para manter versões diferentes do Node.JS na máquina? Bom, mesmo o Docker facilitando muito as coisas, o NVM consegue nesse cenário facilitar mais ainda.

Com o Docker, teríamos que executar um container para cada versão diferente do Node.JS, fora o tamanho das imagens que teremos que fazer o download e deixar na nossa máquina. E particularmente acho bem mais simples usar o comando nvm ls-remote para listar todas as versões disponíveis e use v13.5.0 para usar uma determinada versão, como veremos a seguir.

Conclusão

Que legal o NVM não é? Nesse artigo, entendemos o que é o NVM e porque ele facilita muito a vida de desenvolvedores e desenvolvedoras Node.JS, que precisam lidar com versões diferentes do mesmo, constantemente. E temos um ganho de produtividade muito significativo.

Aqui vimos um pouco sobre o NVM, mas se está aqui, então você pode gostar da formação de Node.JS da Alura, então corre lá, tenho certeza que você vai gostar e já está com o ambiente prontinho para começar.

Jonilson Sousa
Jonilson Sousa

Sou desenvolvedor de software no Grupo Alura. Trabalhando com as mais diversas tecnologias, como Java, Python, Javascript, PHP usando frameworks como Spring Boot, Flask. E gosto de ver outras tecnologias e ou frameworks legais por diversão.

Veja outros artigos sobre Programação