Nvm: Gerenciando versões de NodeJs
Se você trabalha com vários projetos Node, já percebeu como é complicado quando os projetos requerem versões diferentes.
Bom, para resolver esse problema existe um projeto chamado NVM (Node Version Manager), onde você pode ter várias versões do NodeJs instalado em sua máquina e quando precisar rodar um projeto em uma versão especifica basta fazer a troca pelo terminal.
Instalação em ambiente Linux e MacOS
O processo de instalação é bem simples e você pode conferir na documentação oficial.
Resumidamente o comando de instalação é esse:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | $SHELL
Ou via wget:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | $SHELL
Obs.: Sempre é bom instalar a última versão da ferramenta. Perceba que no link acima está sendo informado a versão 0.39.5, mas você pode conferir aqui qual a última versão do projeto e alterar o comando de instalação.
Se você utiliza o ZSH será necessário adicionar o seguinte código no arquivo ~/.zshrc:
export NVM_DIR=~/.nvm [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
Pronto, agora feche seu terminal, abra novamente e execute o seguinte comando para verificar se o NVM foi instalado corretamente:
nvm --version
Instalação em ambiente Windows
A instalação é bem simples, basta acessar esse site e fazer o download do arquivo nvm-setup.zip. Após isso execute o arquivo que está dentro do zip e prossiga com a instalação. Depois reinicie seu computador e verifique se a instalação ocorreu com sucesso executando o comando nvm --version no terminal.
Conhecendo a ferramenta
O primeiro comando e o mais importante é o nvm. Se a sua instalação foi bem sucedida, assim que você digitar esse comando no terminal você irá ver algo parecido com a imagem abaixo:
Dentre essa grande quantidade de comandos disponíveis vou mostrar alguns mais interessantes:
1- Listar versões disponíveis para instalação:
nvm ls-remote
2- Listar versões instaladas em sua máquina:
nvm ls
3- Instalar uma versão:
nvm install NUMERO_VERSAO
Exemplo: nvm install v18.17.1
4- Desinstalar uma versão:
nvm uninstall NUMERO_VERSAO
Exemplo: nvm uninstall v18.17.1
5- Usar uma versão:
nvm use NUMERO_VERSAO
Exemplo: nvm use v18.17.1
6- Definir nome para uma versão:
nvm alias MEU_NOME NUMERO_VERSAO
Exemplo: nvm alias node18 v18.17.1
Com isso você poderá usar uma versão pelo nome definido e não mais pelo número da versão. Exemplo: nvm use node18
7- Remover um nome de versão:
nvm unalias MEU_NOME
Exemplo: nvm unalias node18
8- Definir uma versão padrão para o sistema operacional:
nvm alias default NUMERO_VERSAO
Exemplo: nvm alias default v18.17.1
9- Descobrir versão atual que está sendo utilizada no terminal:
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 15 do Node.js e já mandar ele automaticamente instalar os pacotes globais do NPM que instalamos quando estávamos usando a versão 12.
nvm install 15.8.0 --reinstall-packages-from=12.20.1
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 v14.16.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.
Após executar o comando nvm use no terminal deverá aparecer a seguinte mensagem "Now using node v14.16.0 (npm v6.14.11)".
Caso aparece a mensagem "You need to run "nvm install v14.16.0" to install it before using it." quer dizer que no seu NVM ainda não existe essa versão do Node instalada e com isso basta executar o comando que ele sugere.
Comentários
Postar um comentário