NodeJS: introdução e instalação

Conheça o NodeJS, o npm e o npx, entenda o papel do NodeJS do lado do servidor e faça a instalação usando um gerenciador de versões (nvm).

1. Visão geral

Neste codelab você conhece o NodeJS, o ambiente que viabiliza a execução de código Javascript do lado do servidor, e as ferramentas que o acompanham: o npm e o npx. Em seguida, você instala o NodeJS usando um gerenciador de versões e testa a instalação.

O que você vai aprender

  • O que são o NodeJS, o npm e o npx
  • Por que o NodeJS permite usar uma única linguagem em toda a pilha de desenvolvimento
  • Como a CLI do npm obtém pacotes do npm registry
  • Como executar pacotes com e sem o npx, instalando-os global ou localmente
  • Como instalar o NodeJS com o instalador oficial ou com um Node Version Manager (nvm)
  • Como testar o NodeJS (REPL), o npm e o npx

O que você vai precisar

  • Um computador com Linux, MacOS ou Windows
  • Acesso a um terminal
  • Conexão com a internet para baixar o nvm, o NodeJS e os pacotes do npm registry

2. NodeJS, npm e npx

Ryan Dahl é o criador do NodeJS. A sua primeira versão foi disponibilizada em maio de 2009. Trata-se de um ambiente que viabiliza, entre outras coisas, a execução de código Javascript do lado do servidor. A sua instalação inclui o Node Package Manager (npm), um gerenciador de pacotes por meio do qual podemos fazer a instalação de pacotes e bibliotecas diversas, os quais são obtidos do npm registry. A primeira versão do npm data de janeiro de 2010. Desde a sua versão 5.2, o npm inclui o npx, que é uma ferramenta que simplifica a execução de pacotes.

As páginas oficiais do NodeJS e do npm podem ser acessadas por meio dos links a seguir:

NodeJS do lado do servidor, comparação com alternativas

Uma das grandes vantagens que o uso do NodeJS traz é a possibilidade de se utilizar uma única linguagem de programação em toda a "pilha" de desenvolvimento: a linguagem Javascript nasceu originalmente no ambiente de navegadores, em que é utilizada para fazer validações, animações etc. no navegador. Com a chegada do NodeJS, a linguagem Javascript passa a ser utilizada também para tarefas que envolvem o acesso a bases de dados, o acesso ao sistema de arquivos e a produção de conteúdo dinamicamente, ou seja, em tempo de requisição. A figura a seguir mostra uma comparação entre o uso do NodeJS e de servidores de aplicação bastante comuns.

Diagrama de desenvolvimento full stack: à esquerda, três navegadores executando código Javascript do lado do cliente (front end); à direita (back end), eles trocam requisições e respostas com um servidor PHP, um Apache Tomcat com código Java e um servidor NodeJS com código Javascript, cada um ligado a uma base de dados

Figura 1.2.1: no front end o código é sempre Javascript; no back end, o NodeJS permite usar Javascript no lugar de PHP ou Java.

npm CLI e npm registry

A figura a seguir, por outro lado, mostra a ideia geral do uso do npm. Ele possui uma CLI (command line interface) com a qual podemos interagir para obter pacotes, para criar projetos etc.

À esquerda, a CLI do npm com comandos como npm init, npm install express, npm install nodemon --save-dev, npm uninstall express, npm run e npm run start; à direita, o npm registry, uma base de pacotes e scripts como express, nodemon, cloudinary, mocha e create-react-app; entre eles, setas de requisição e resposta

Figura 1.3.1: obtendo pacotes e executando scripts do npm registry usando o npm CLI.

3. Executando pacotes com npm e npx

A ferramenta npx, por sua vez, simplifica a execução de pacotes. A título de ilustração, vamos usar um pacote que se chama cowsay. Quando executado, ele mostra a figura de uma vaca que "fala" uma frase que podemos especificar. Veja sua página oficial em https://www.npmjs.com/package/cowsay.

Usando npm (sem npx)

Usando npm (sem npx), instalamos o pacote com

Terminal

npm install -g cowsay

A seguir, ele é executado com

Terminal

cowsay muuu

Por ter sido instalado globalmente (opção -g), ele pode ser acessado diretamente na linha de comando. Caso tenha sido instalado localmente, navegamos até o diretório de executáveis com

Terminal

cd node_modules/.bin

A seguir, o script pode ser executado com

Terminal

node cowsay muuu

Usando npx

Usando a ferramenta npx, a execução do pacote é feita com o comando

Terminal

npx cowsay muu

Note que a instalação se dá automaticamente. Os arquivos do pacote utilizado ficam armazenados em uma memória cache do npx.

4. Instalação do NodeJS

O NodeJS pode ser instalado de diversas formas. Uma delas se dá por meio de seu instalador oficial. Uma outra se baseia no uso de um Node Version Manager, que é a alternativa pela qual optaremos. Ambas são descritas a seguir.

Instalação com o instalador regular do Node

Uma maneira bastante simples para fazer a instalação do NodeJS é por meio do download do seu instalador, disponível no site oficial: https://nodejs.org. A instalação do NodeJS já implica a instalação do npm.

Instalação usando um gerenciador de versões

Há ainda a possibilidade de fazer a instalação do NodeJS por meio de um Node Version Manager (nvm), ou seja, um gerenciador de versões do NodeJS. Ele permite que tenhamos diversas versões do NodeJS instaladas e que alternemos entre elas conforme desejado. Além disso, os arquivos de instalação do NodeJS ficam no diretório do usuário do sistema operacional, o que quer dizer que seu uso tende a evitar problemas de permissão para acesso a determinados diretórios. Por essas razões, optaremos por essa forma de instalação.

O instalador de um nvm pode ser obtido nos links a seguir:

Uma vez instalado o nvm, o NodeJS pode ser instalado com

Terminal

nvm install versao-desejada

É interessante instalar a última versão LTS disponível na maior parte dos casos. As versões disponíveis para instalação podem ser listadas com

Terminal (Linux & MacOS)

nvm ls-remote

Terminal (Windows)

nvm list available

A última versão LTS disponível no momento em que esse documento foi escrito era a 14.17.3. A sua instalação pode ser feita com

Terminal

nvm install 14.17.3

A seguir, para colocá-la em uso, use:

Terminal

nvm use 14.17.3

Testando a instalação

Para testar a sua instalação, abra um terminal e digite

Terminal

node

Isso abre o REPL (Read, Evaluate, Print, Loop) do NodeJS. Digite algo como

REPL do NodeJS

console.log ("Hello, NodeJS")

Aperte CTRL+D ou CTRL+C duas vezes para sair do REPL.

Para testar o npm, use

Terminal

npm --version

Teste o npx com

Terminal

npx cowsay mu

O resultado esperado se parece com aquele exibido pela figura a seguir.

Terminal após executar npx cowsay mu: a vaca desenhada em caracteres ASCII com um balão de fala contendo "mu"

Figura 2.2.1: resultado esperado do comando npx cowsay mu.

5. Encerramento

Parabéns! Você conheceu o NodeJS, o npm e o npx e deixou o ambiente pronto para desenvolver com Javascript do lado do servidor.

O que você fez

  • Entendeu o papel do NodeJS no back end e como ele se compara a servidores PHP e Java
  • Viu como a CLI do npm obtém pacotes do npm registry
  • Executou o pacote cowsay com npm (instalação global ou local) e com npx
  • Instalou o NodeJS com o nvm e testou o REPL, o npm e o npx

Referências

Todos os codelabs