Utilizando versões antigas do Nodejs



Se você, assim como eu, atualizou a versão do Node instalado em sua máquina para a versão 4.0.0, pode ser que algo pare de funcionar, como no meu caso o Hexo (Que eu utilizo para esse Blog). Porém não precisa se desesperar, além dos módulos logo se atualizarem para a nova versão, existe uma solução simples para esse tipo de problema.

Existe uma ferramenta muito legal chamada NVM (Node version manager) que serve para trabalhar com mais de uma versão do Node isoladamente, parecido com o Virtualenv para Python.

Instalação do NVM

Se você utiliza Linux Ubuntu/Debian ou derivados execute os seguintes comandos no seu terminal para instalação do NVM:

Instalação das dependências

1
2
sudo apt-get update
sudo apt-get install build-essential libssl-dev

Instalação do NVM

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

Lembrando que o comando acima vai instalar a ultima versão de quando eu escrevi esse post, poranto pode estar desatualizada. Para pegar a ultima versão do NVM, acesse o link do repositório na sessão Referência desse artigo.

Para conseguir utilizar o NVM você precisa efetuar Logoff em seu Sistema. Se não quiser deslogar agora, pode rodar o comando source ~/.profile

Se você utiliza Windows basta seguir esse tutorial para a instação.

Instalando versões isoladas do Nodejs

Para encontrar as versões disponíveis para instalação você pode executar o comando:

1
nvm ls-remote

As versões disponíveis para a instalação serão apresentadas.

nvm ls remote

E agora, para instalar a versão anterior necessária, basta executar o comando:

1
nvm install versão

No meu caso eu precisava da versão 0.12 para executar o Hexo, então executei nvm install v0.12.0

nvm install versao

Alternado as versões do Nodejs

O NVM vai executar a versão mais recente que estiver instalada por padrão, então, para executar outra versão, você precisa executar o comando:

1
nvm use versao

Se quiser também pode executar:

1
nvm run versao app.js

Para colocar a aplicação para funcionar com a versão específica somente até finalizar a mesma.

Se ouver mais de uma versão instalada, você pode executar o comando:

1
nvm ls

Para ver a lista das versões.

Deixando uma versão como padrão

Se quiser setar uma versão anterior como padrão e não a mais atual, basta rodar:

1
nvm alias default versão

Com essas configurações você pode utilizar seus pacotes do Node instalados via NPM normalmente. A grande diferença será que os pacotes ficarão instalados em: ~/.nvm/node_version/lib/node_modules/

E todo pacote instalado Global precisará ser vinculado a um pacote local para poder ser utilizado no projeto com o comando:

1
npm link pacote

Como no meu caso:

1
npm link hexo

O NVM também pode ser utilizado para isolar ambientes do io.js.

Para instalar a última versão do Node junto as antigas você pode fazer:

1
nvm install stable

Utilizando o .nvmrc para especificar a versão

Quando você compartilha seu código, em algum momento será necessário especificar a versão do Node que seu projeto precisa. Você pode fazer isso através de um arquio .nvmrc ao invés de deixar em algum local como um README. - Evitando também que a outra pessoa esqueça de rodar um nvm use versao.

Utilize qualquer editor de texto para criação do arquivo. O mesmo deve ser criado dentro do diretório do seu projeto. Se estiver usando Windows e Notepad será necessário salvar como “Todos os formatos” e no nome do arquivo colocar “.nvmrc” (com aspas).

No arquivo coloque a versão que vai utilizar, ex.: 0.12.

Ao abrir o terminal em um diretório com o .nvmrc a versão será reconhecida e automaticamente configurada como se você utilizasse o comando nvm use.

Caso você abra o terminal nesse diretório diretório e não tenha instalado previamente a versão necessária será apresentado um erro:

Tentativa de configurar a versão automaticamente

Então basta rodar o comando nvm install e a versão especificada no arquivo será instalada automaticamente.

nvm install a partir do .nvmrc

Rferências: