Nossa tradução anterior sobre as novas funções da 15ª versão do Node.js foi muito bem recebida pelos leitores da Habr, então hoje decidimos continuar o tópico e dizer a vocês como configurar o NVM com a versão 15 do Node.js e NPM 7 .
A versão 15 do Node.js foi lançada em 20 de outubro de 2020. Ele vem com o npm 7 e muitos novos recursos. Você já experimentou a nova versão?
Mas espere um minuto! Node.js 15 e npm 7 contêm alterações importantes. A atualização não prejudicaria os projetos existentes?
Em teoria, pode doer!
Felizmente, temos NVM (Node Version Manager) para nos salvar desse perigo. Vamos dar uma olhada mais de perto nesta ferramenta para atualizar as versões do node.js e do npm sem problemas.
Instale NVM
nvm
gerencia as versões node.js e npm. Ele é instalado para um usuário específico e pode ser chamado separadamente para cada shell.
nvm
funciona com qualquer shell compatível com POSIX (sh, dash, ksh, zsh, bash), incluindo plataformas: unix, macOS e Windows WSL.
nvm
pode ser instalado usando os comandos curl ou wget:
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash $ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
Escrita
install.sh
clona nvm repositório em
~/.nvm
e tenta adicionar as linhas de origem a partir do seguinte fragmento para o arquivo de perfil desejado (
~/.bash_profile
,
~/.zshrc
,
~/.profile
ou
~/.bashrc
).
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Em
~/.bash_profile
podemos ver que as linhas são adicionadas:
export NVM_DIR="/Users/fuje/.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
Usando NVM
Portanto, instalamos o nvm. Agora usamos este comando para instalar a versão mais recente do node.js:
$ nvm install node
Downloading and installing node v15.4.0...
Downloading https://nodejs.org/dist/v15.4.0/node-v15.4.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v15.4.0 (npm v7.0.15)
Os dados do exemplo acima saída indica que NPM
7.0.15
utilizada com node.js
15.4.0
. Vamos checar:
$ node -v v15.4.0 $ npm -v 7.0.15
Também podemos especificar a versão necessária para instalação. O formato semântico da versão é determinado pelo SemVer :
$ nvm install 10.14.0
Downloading and installing node v10.14.0...
Downloading https://nodejs.org/dist/v10.14.0/node-v10.14.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v10.14.0 (npm v6.4.1)
Se a versão especificada já foi instalada, ela não é reinstalada:
$ nvm install 10.14.0 v10.14.0 is already installed. Now using node v10.14.0 (npm v6.4.1)
Podemos exibir todas as versões instaladas:
$ nvm ls -> v10.14.0 v10.15.0 v10.16.0 v12.16.0 v13.9.0 v15.4.0 system default -> 12.16.0 (-> v12.16.0) node -> stable (-> v15.4.0) (default) stable -> 15.4 (-> v15.4.0) (default) iojs -> N/A (default) unstable -> N/A (default) lts/* -> lts/fermium (-> N/A) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.23.0 (-> N/A) lts/erbium -> v12.20.0 (-> N/A) lts/fermium -> v14.15.1 (-> N/A)
Nos exemplos de saída acima, o símbolo
->
indica que a versão atual do node.js é
10.14.0
. A seta também representa valores para
default
(
12.16.0
),
node
(
15.4.0
) e
stable
(
15.4.0
).
nvm use
substitui a versão atual:
$ nvm use 12.16.0 Now using node v12.16.0 (npm v6.14.8) $ nvm use 10.16.0 Now using node v10.16.0 (npm v6.14.5) $ nvm use 13.9.0 Now using node v13.9.0 (npm v6.13.7) $ nvm use default Now using node v12.16.0 (npm v6.14.8) $ nvm use node Now using node v15.4.0 (npm v7.0.15) $ nvm use stable Now using node v15.4.0 (npm v7.0.15)
Você pode estar se perguntando como é que
v10.16.0
usa uma versão posterior do npm do que
v13.9.0
. Esta tarefa pode ser resolvida usando os seguintes comandos:
$ nvm use 10.16.0 $ npm install -g npm@6.14.5
Este comando permite que você obtenha a versão npm mais recente compatível com a versão atual do Node.js:
$ nvm install-latest-npm
nvm use
instala a versão correta apenas para o shell atual. Se você alterar o shell, a versão recém-atualizada do node.js será perdida.
Como posso tornar uma versão específica do Node.js persistente?
A versão padrão é aquela distribuída para todos os shells.
O comando
nvm alias
permite definir a versão padrão.
$ nvm alias default 10.16.0
Por conveniência, você pode criar um arquivo
.nvmrc
que aceite o formato SemVer
node
ou
default
. Depois disso
nvm use
,
nvm install
,
nvm exec
,
nvm run
e
nvm which
usará a versão especificada no arquivo
.nvmrc
, a menos que outra linha de comando.
$ cat .nvmrc
15.4.0
$ nvm use
Found '/Users/fuje/.nvmrc' with version <15.4.0>
Now using node v15.4.0 (npm v7.0.15)
Podemos verificar a versão atual com o seguinte comando:
$ nvm current v15.4.0
ls-remote
exibe todas as versões disponíveis, mas esteja preparado para uma lista muito longa.
$ nvm ls-remote
Observe que o nome da versão abreviada encurta significativamente a lista inteira.
$ nvm ls-remote 15 v15.0.0 v15.0.1 v15.1.0 v15.2.0 v15.2.1 v15.3.0 -> v15.4.0
nvm which
indica o caminho para o executável onde
nvm
foi instalado. Instalamos versões do node.js como
10.14.0
,
10.15.0
e
10.16.0
. Aqui estão os resultados
nvm which
:
$ nvm which 10.14.0
/Users/fuje/.nvm/versions/node/v10.14.0/bin/node
$ nvm which 10.15.0
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.16.0
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
$ nvm which 10.15
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.12
N/A: version "v10.12" is not yet installed.
You need to run "nvm install 10.12" to install it before using it.
$ nvm which 10
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
A versão especificada do Node.js pode ser usada diretamente para iniciar aplicativos:
$ nvm run 10.15.0 app.js
Como alternativa, este comando é executado
node app.js
com a variável PATH indicando a versão
10.15.0
.
$ nvm exec 10.15.0 node app.js
Se você precisar de mais comandos nvm, execute o comando
help
:
$ nvm --help
Atualização NVM
Podemos usar
nvm
node.js e npm para atualizar. Mas como faço para me atualizar
nvm
?
Vamos tentar!
Antes de atualizar, nós instalamos
nvm
0.34.0
.
Atualizamos para a versão 0.37.2.
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 13527 100 13527 0 0 23046 0 --:--:-- --:--:-- --:--:-- 23083
=> nvm is already installed in /Users/fuje/.nvm, trying to update using git
=> => Compressing and cleaning up git repository
=> nvm source string already in /Users/fuje/.bash_profile
=> bash_completion source string already in /Users/fuje/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:
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
Conforme declarado na saída, precisamos fechar e reabrir o terminal para usar a nova versão:
$ nvm --version 0.37.2
Em comparação com a versão
0.34.0
, a versão
0.37.2
adicionou uma função
nvm set-colors
de saída para o console. Mostra as seguintes cores por
padrão
nvm ls
:
Definir novas cores:
$ nvm set-colors cgYmW
nvm ls
exibe a saída com novas cores:
Conclusão
nvm
simplifica o controle de versão node.js e npm. Agora estamos definitivamente prontos para mudar para node.js 15 e npm 7. Espero que você tenha achado isso útil. Outras publicações do autor podem ser encontradas aqui .