Quem nunca passou pelo problema de baixar o instalador do Node JS no site oficial, instalou e deu problemas de autorização com o Node Modules, e não conseguiu fazer nada? Talvez você tenha até se irritado e voltado para o Windows por causa disso.
Bem, o ideal seria você conseguir instalar o Node JS pela aplicação disponibilizada por eles mesmos, mas:
“O mundo não é essa janta toda.”
– Nil Agra
Isso acabou obrigando diversos desenvolvedores a darem “o seu jeitinho”, e criaram diversas ferramentas muito boas, não apenas para instalar o Node JS, mas como também, para gerenciá-lo. Eu conheço pelos menos 2 que fazem isso muito bem, o ASDF e o NVM. Sendo que, neste post, não apenas por comodidade e facilidade, mas visando ensinar os novatos em Linux e Node JS, eu vou falar do NVM, OK?
O que é o NVM?
Bom, galera! Resumidamente, o NVM é um gerenciador de pacotes do Node JS, onde você consegue instalar se forma prática e segura todas as versões do Node JS (eu disse todas!). E não somente isso, você pode alterar entre as versões do Node JS instaladas na sua máquina quando e como você quiser. Dá até pra automatizar a troca de acordo com o seu projeto, ou seja, abriu um projeto com Node 8, ele muda pro Node 8. Abriu agora um projeto com Node 10, ele altera para o Node 10. É muito top!
Como instalar?
A instalação no Ubuntu pode ocorrer através dos dois links abaixo. Você precisa abrir um terminal, escolher somente uma das formas abaixo (via cURL ou via wGet) copiar e colar a linha de código e executar (Ctrl+C, Ctrl+V e Enter! Seja feliz!).
Via cURL
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
Você só precisa usar um ou outro. Se você estiver utilizando alguma distribuição que não venha com o cURL instalado por padrão, o que pode ocorrer nas novas distribuições, é só rodar o comando com wGet.
Ao final da instalação, ele vai perguntar se você quer usar o NVM agora (após a instalação). Para fazer isso, você precisa fazer com que o sistema reconheça o NVM rodando o seguinte comando (Ctrl+C, Ctrl+V e Enter!):
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Mas é bem provável que o NVM não funcione depois de fechar o terminal ou reiniciar o Linux. Então, é necessário incluir este comando no perfil do seu terminal.
Para isso, abra o editor de sua preferência (não precisa ser em modo root usando o sudo), e edite um destes arquivos: ~/.bash_profile, ~/.zshrc, ~/.profile, ou ~/.bashrc.
Geralmente é o ~/.bashrc para terminais padrões, ou o ~/.zshrc caso você tenha instalado o ZSH.
Como eu instalei o ZSH, eu vou usar o seguinte comando:
nano ~/.zshrc
Vá até o final do arquivo, pule uma linha e insira o seguinte:
# NVM export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Sim! É o mesmo código que você usou lá em cima, mas aquele era para você usar naquele momento. Assim que reiniciasse o terminal, ele deixaria de funcionar. Já este, é para ficar configurado para sempre (ou até você formatar essa bagaça aí… kkk).
Pronto! Feito isto, agora vamos instalar o Node JS. Você pode instalar de diversas formas, mas como sempre, eu vou pelo mais simples. As duas formas básicas são para instalar a versão LTS, que é a versão estável do Node JS, e a outra é para instalar a última versão (ainda em desenvolvimento, por isso instável).
Para instalar a versão estável (LTS):
nvm install --lts
Para instalar a última versão (em desenvolvimento/instável):
nvm install node
Tá, mas qual é a diferença? Vai dar pau se eu instalar a última versão?
Primeiro, vamos falar da diferença entre as versões. Desde a primeira versão do Node JS até aqui, inúmeras melhorias foram adicionadas ao projeto, e continuam sendo aprimoradas até hoje, por isso saem novas versões.
A versão estável, é uma versão que já foi testada inúmeras vezes, houveram várias correções, e as chances de “bugar” são bem poucas.
A versão em desenvolvimento possui novas melhorias, que não tem na versão estável, por isso é um código mais atualizado, com mais componentes, com mais features, com mais tudo, porém, menos testado e com mais chances de ter bugs/falhas ainda não descobertos.
Quer um conselho?
Se você é novo em Node JS, prefira instalar sempre a versão estável (LTS).
Se estiver fazendo algum curso, dificilmente você vai ver alguém utilizando as versões em desenvolvimento (as últimas versões). Até porque, por mais que eles iniciem o curso com uma versão em desenvolvimento, até acabarem de gravar/editar o curso, ela já deve ter se tornado uma versão estável.
Mesmo que você entre em uma empresa hoje, geralmente você vai entrar em um projeto que já existe, com código antigo e dificilmente irão iniciar um projeto com a última versão. Em alguns casos, eles preferem até usar alguma versão anterior a última versão estável disponível no momento, para maior segurança e estabilidade no desenvolvimento.
Então, vá com calma!
Como que eu sei que tá tudo funcionando?
Pra testar o NVM, a gente pode rodar o comando nvm
no terminal, ou checar a versão do NVM com o seguinte comando:
nvm --version
O meu retornou o seguinte:
nvm --version 0.35.3
Pra testar o Node JS, rode o comando, e ele vai retornar a versão logo abaixo:
node -v v12.18.3
Ele também vem com o NPM. Para testar o NPM, rode o seguinte comando:
npm -v 6.14.6
Daqui pra frente, as versões que ele irá retornar (NVM, Node e NPM) poderão ser as mesmas, ou superiores, mas isso não invalida este material. Enquanto o NVM existir, esses serão os comandos básicos de instalação do NVM, Node e NPM.
Finalizando
Bem, por enquanto é só. Tudo instalado da maneira certa e tudo funcionando sem problemas.
Dúvidas? Sugestões? Fique a vontade para comentar abaixo. Ficarei feliz em ouvir você.