Como atualizar corretamente o nó usando o nvm


231

É possível atualizar nodeno lugar certo, em vez de instalar manualmente a versão estável mais recente?

Eu instalei node.js versão 5.0com nvm, mas agora eu quero atualizá-lo para 5.4. Estou tentando evitar a reinstalação manual de todos os meus pacotes globais ( por exemplo , executando npm install -g grunt-cli bower yo yoman-angular-generator blabla blablablabla...).

Respostas:


328

Isso pode funcionar:

nvm install NEW_VERSION --reinstall-packages-from=OLD_VERSION

Por exemplo:

nvm install 6.7 --reinstall-packages-from=6.4

se desejar, você pode excluir sua versão anterior com:

nvm uninstall OLD_VERSION

Onde, no seu caso, NEW_VERSION = 5.4 OLD_VERSION = 5.0

Como alternativa, tente:

nvm install stable

1
dose usando nvm install stableremover todos os pacotes instalados, incluindo o nó instalado, em vez de atualizá-los?
Syed

1
na verdade, isso não está mais funcionando. Há um problema com npm: github.com/creationix/nvm/issues/811
jhuesos

5
Por nvm ls-remotevocê pode ver todos os lançamentos.
Daniel

7
Isso funciona para mim: nvm install node --reinstall-packages-from=$(nvm current). Isso atualizará o Node.js para a versão mais recente e reinstalará os pacotes globais do npm, independentemente da versão anterior.
cyfrost 12/05/19

Se você não conseguir desinstalar, use nvm deactivatee tente novamente.
izilotti

185

Você pode simplesmente executar um dos seguintes comandos:

Versão mais recente : Versão
nvm install node --reinstall-packages-from=node
estável (LTS) :
nvm install lts/* --reinstall-packages-from=node

Isso instalará a versão apropriada e reinstalará todos os pacotes da versão do nó atualmente usado. Isso evita que você manipule manualmente as versões específicas.

Editar - adicionado comando para instalar a versão LTS de acordo com o comentário do @ m4js7er.


20
Se você deseja atualizar para estável mais recente versão (lts - recomendada para a maioria dos usuários), então você deve executar: nvm install lts/* --reinstall-packages-from=node. Depois disso, você pode limpar suas versões com nvm uninstall [old version]. Você pode listar todas as versões instaladas com nvm ls.
M4js7er

Duplo pensar antes de fazer --reinstall-packages-from=nodeVocê pode usar diferentes ambientes globais para as versões 6, 8 e 10.
contributorpw

1
Amarrei o comando, nvm install lts/* --reinstall-packages-from=nodemas ele me deu um erro ao dizer Version 'lts/*' not found - try 'nvm ls-remote' to browse available versions.que estou usando o NVM versão 0.30.1, talvez meu NVM seja muito antigo. Eu acabar substituindo manualmente lts/*com 10.15.2/*a obtê-lo para o trabalho.
Zhang

16

DUAS Soluções Simples:

Para instalar a versão mais recente do nó e reinstalar os pacotes da versão antiga, execute o seguinte comando.

nvm install node --reinstall-packages-from=node

Para instalar a ltsversão mais recente (suporte a longo prazo) do nó e reinstalar os pacotes da versão antiga, execute o seguinte comando.

nvm install --lts /* --reinstall-packages-from=node

Aqui está um GIF para apoiar esta resposta. nvm


Não posso chegar a este trabalho - eu apenas receberIf --reinstall-packages-from is provided, it must point to an installed version of node.
wickywills

@wickywills "nó: instala a versão mais recente do nó" talvez você tenha instalado o LTS ou uma versão específica e, portanto node, não apontou para a versão mais recente instalada. Ou você precisa atualizar o nvm.
IBaff

10

Se você possui 4.2 e deseja instalar o 5.0.0,

nvm install v5.0.0 --reinstall-packages-from=4.2

a resposta de gabrielperales está certa, exceto que ele perdeu o sinal "=" no final. se você não colocar o sinal "=", a nova versão do nó será instalada, mas os pacotes não serão instalados.

fonte: sitepoint


2

Node.JS para instalar uma nova versão.

Etapa 1: Instalação do NVM

npm i -g nvm

Etapa 2: NODE Instalação da versão mais recente

nvm install *.*.*(NodeVersion)

Etapa 3: Versão do Nó Selecionado

nvm use *.*.*(NodeVersion)

Terminar


0

Alias ​​do bash para atualizar a versão ativa atual:

alias nodeupdate='nvm install $(nvm current | sed -rn "s/v([[:digit:]]+).*/\1/p") --reinstall-packages-from=$(nvm current)'

A peça sed -rn "s/v([[:digit:]]+).*/\1/p"transforma a saída de nvm currentmodo que somente uma versão principal do nó seja retornada, ou seja: v13.5.0-> 13.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.