Quando trabalhamos com desenvolvimento de softwares utilizando Node.js, é comum lidarmos com diferentes versões de módulos, nativamente usamos NPM, o gerenciador padrão do Node.js.

Além de nos ajudar a manter nossa aplicação atualizada, possui um conjunto de comandos úteis que nos permiti gerenciar dependências, distribuição de pacotes privados, controlar o cache em módulos e configurações de nossa app.

Mas quando preciso lidar com múltiplas versões do Node.js e de outras linguagens?

Homebrew

Homebrew é um gerenciador de pacotes para Mac OS, ele instala múltiplas versões dos pacotes que precisamos em sua pasta e cria links simbólicos em usr/local. Desta forma podemos alternar entre as versões de diferentes pacotes, entre eles Node,js, PHP, Python, Ruby e muito mais.

A instalação é bem simples, basta executar o comando no terminal:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Caso não tenha sucesso, é possível que não tenha os requisitos descritos na documentação. 🙁

Após a instalação, verifique a versão instalada:

brew --version

Você deve ver algo como:

Homebrew 1.5.11

Node Version Manager

Atualmente estou trabalhando com uma aplicação usando NodeJS 6.x, como iniciei sua migração, precisei trabalhar com o Node Version Manager (NVM), com ele instalado, posso alternar facilmente entre as versões.

Para instalar, você pode tentar instalar seguindo as recomendações oficiais, ou instalar a partir do homebrew, o que é bem prático como vou apresentar.

Trabalhando com múltiplas versões do Node.js

  1. Certifique-se que o homebrew está instalado:

    brew --version
  2. Instale o nvm com o homebrew:
    brew install nvm
  3. Crie o diretório do nvm:
    mkdir ~/.nvm
  4. Instale a versão do Node.js
    nvm install node

    Este comando vai instalar a última versão estável. Além desta versão, instalei a versão 6.9 e lts com seguintes comandos:

    nvm install --lts
    nvm install 6.9.13
  5. Selecione a versão do node para trabalhar com o nvm:
    nvm use lts
  6. Confirme que tudo está funcionando:
    nvm run node --version
  7. Configure o nvm para ficar acessível em qualque sessão shell:
    Adicione o seguinte comando no arquivo ~/.bashrc se estiver usando BASH ou ~/.zshrc se você está usando ZSH:

    export NVM_DIR="$HOME/.nvm"
    . "$(brew --prefix nvm)/nvm.sh"

Antes de chegar nesta solução, me peguei fazendo buscas como “how to install multiple versions of node”, “change node js version” e “manage node js version”. Imediatamente, encontrei diversas alternativas, então resolvi simplificar o que aprendi e compartilhar neste post. Se tiver alguma sugestão adicional ou se ajudou, ficarei feliz em saber. 🙂

Em breve farei outro post explicando como alternar versões do PHP, com homebrew e Nignx, algo bastante comum em migrações de aplicações legadas.