NVM: como atualizar o Node LTS sem perder seus packages globais

javascript dev.to

Se você usa NVM no dia a dia, provavelmente já passou por isso:

Você atualiza o Node para uma versão mais nova e, de repente, seus packages globais somem.

Angular CLI, Nest CLI, Expo, tudo desaparece.

Recentemente eu estava atualizando da versão:

v24.13.1
Enter fullscreen mode Exit fullscreen mode

para:

v24.15.0
Enter fullscreen mode Exit fullscreen mode

e descobri uma funcionalidade muito boa do NVM que muita gente não conhece.


Entendendo o que acontece

Cada versão do Node instalada pelo NVM possui seu próprio ambiente isolado.

Ou seja:

~/.nvm/versions/node/v24.13.1
Enter fullscreen mode Exit fullscreen mode

é completamente separado de:

~/.nvm/versions/node/v24.15.0
Enter fullscreen mode Exit fullscreen mode

Isso significa que os packages globais instalados em uma versão não aparecem automaticamente na outra.


Como listar seus packages globais

Primeiro, use a versão antiga:

nvm use 24.13.1
Enter fullscreen mode Exit fullscreen mode

Depois liste os packages globais:

npm list -g --depth=0
Enter fullscreen mode Exit fullscreen mode

Exemplo real:

/Users/me/.nvm/versions/node/v24.13.1/lib
├── @angular/cli@21.1.4
├── @expo/ngrok@4.1.3
├── @nestjs/cli@11.0.21
├── corepack@0.34.6
└── npm@11.8.0
Enter fullscreen mode Exit fullscreen mode

Instalando uma nova versão do Node e migrando os packages

Aqui está a parte interessante.

Você pode instalar uma nova versão do Node e pedir para o NVM reinstalar automaticamente os packages globais da versão anterior:

nvm install 24.15.0 --reinstall-packages-from=24.13.1
Enter fullscreen mode Exit fullscreen mode

Isso reinstala automaticamente:

  • @angular/cli
  • @nestjs/cli
  • @expo/ngrok

sem precisar reinstalar manualmente tudo depois.


Um detalhe importante

Isso NÃO atualiza os packages para a última versão.

Ele reinstala exatamente as mesmas versões que você já tinha.

Exemplo:

@angular/cli@21.1.4
Enter fullscreen mode Exit fullscreen mode

continua:

@angular/cli@21.1.4
Enter fullscreen mode Exit fullscreen mode

Como atualizar os packages globais depois

Se quiser atualizar tudo:

npm update -g
Enter fullscreen mode Exit fullscreen mode

Ou atualizar packages específicos:

npm install -g @angular/cli@latest
npm install -g @nestjs/cli@latest
Enter fullscreen mode Exit fullscreen mode

Pra verificar o que está desatualizado:

npm outdated -g
Enter fullscreen mode Exit fullscreen mode

Um detalhe que me pegou

O comando:

--reinstall-packages-from
Enter fullscreen mode Exit fullscreen mode

só funciona durante a instalação da versão.

Se a versão já estiver instalada, o NVM apenas faz:

nvm use
Enter fullscreen mode Exit fullscreen mode

e não reinstala nada.

Então, se você já instalou a versão nova antes, faça:

nvm uninstall 24.15.0
Enter fullscreen mode Exit fullscreen mode

e depois:

nvm install 24.15.0 --reinstall-packages-from=24.13.1
Enter fullscreen mode Exit fullscreen mode

Conclusão

Essa funcionalidade do NVM é uma daquelas pequenas coisas que economizam bastante tempo no dia a dia.

Principalmente se você trabalha com várias CLIs globais e costuma atualizar o Node com frequência.

Source: dev.to

arrow_back Back to Tutorials