Jak poprawnie zaktualizować węzeł za pomocą NVM


231

Czy możliwe jest uaktualnienie nodena miejscu zamiast ręcznego instalowania najnowszej stabilnej wersji?

Mam zainstalowany node.js wersji 5.0z nvm, ale teraz chcę zaktualizować go 5.4. Staram się unikać konieczności ręcznej ponownej instalacji wszystkich moich globalnych pakietów ( np. Uruchamiając npm install -g grunt-cli bower yo yoman-angular-generator blabla blablablabla...).

Odpowiedzi:


328

Może to działać:

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

Na przykład:

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

następnie, jeśli chcesz, możesz usunąć poprzednią wersję za pomocą:

nvm uninstall OLD_VERSION

Gdzie w twoim przypadku NEW_VERSION = 5,4 OLD_VERSION = 5,0

Alternatywnie spróbuj:

nvm install stable

1
dawkować używając nvm install stableusunąć wszystkie zainstalowane pakiety, w tym zainstalowany węzeł, czy raczej je aktualizować?
Syed,

1
właściwie to już nie działa. Wystąpił problem z npm: github.com/creationix/nvm/issues/811
jhuesos

5
Przez nvm ls-remotemożna zobaczyć wszystkie wydania.
Daniel

7
Działa to dla mnie nvm install node --reinstall-packages-from=$(nvm current). To zaktualizuje Node.js do najnowszej wersji i ponownie zainstaluje globalne pakiety npm z poprzedniej wersji.
cyfrost

Jeśli nie uda się odinstalować, użyj nvm deactivatei spróbuj ponownie.
izilotti

185

Możesz po prostu uruchomić jedno z następujących poleceń:

Najnowsza wersja : Wersja
nvm install node --reinstall-packages-from=node
stabilna (LTS) :
nvm install lts/* --reinstall-packages-from=node

Spowoduje to zainstalowanie odpowiedniej wersji i ponowną instalację wszystkich pakietów z aktualnie używanej wersji węzła. Oszczędza to ręcznej obsługi określonych wersji.

Edytuj - dodano polecenie instalacji wersji LTS zgodnie z komentarzem @ m4js7er.


20
Jeśli chcesz zaktualizować do najnowszej stabilnej wersji (LTS - zalecane dla większości użytkowników), a następnie należy uruchomić: nvm install lts/* --reinstall-packages-from=node. Następnie możesz wyczyścić swoje wersje za pomocą nvm uninstall [old version]. Możesz wyświetlić listę wszystkich zainstalowanych wersji za pomocą nvm ls.
m4js7er

Podwójne pomyśleć przed wykonaniem --reinstall-packages-from=nodeMożna użyć różnych środowisk globalnych dla wersji 6, 8 i 10.
contributorpw

1
Związałem to polecenie, nvm install lts/* --reinstall-packages-from=nodeale wystąpił błąd, mówiąc, Version 'lts/*' not found - try 'nvm ls-remote' to browse available versions.że korzystam z NVM w wersji 0.30.1, może mój NVM jest za stary. I skończyć ręcznie zastępując lts/*ze 10.15.2/*aby zmusić go do pracy.
Zhang

16

DWA proste rozwiązania:

Aby zainstalować najnowszą wersję węzła i ponownie zainstalować stare wersje, po prostu uruchom następujące polecenie.

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

Aby zainstalować najnowszą lts(długoterminową obsługę) wersję węzła i ponownie zainstalować stare wersje, uruchom następujące polecenie.

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

Oto GIF wspierający tę odpowiedź. NVM


Nie mogę tego uruchomić - właśnie otrzymujęIf --reinstall-packages-from is provided, it must point to an installed version of node.
wickywills

@wickywills „węzeł: instaluje najnowszą wersję węzła”, być może masz zainstalowany LTS lub określoną wersję, a zatem nodenie wskazywał zainstalowanej najnowszej wersji. Lub musisz zaktualizować NVM.
iBaff,

10

jeśli masz 4.2 i chcesz zainstalować 5.0.0, to

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

odpowiedź gabrielperales jest słuszna, z wyjątkiem tego, że nie zauważył znaku „=” na końcu. jeśli nie umieścisz znaku „=”, nowa wersja węzła zostanie zainstalowana, ale pakiety nie zostaną zainstalowane.

źródło: sitepoint


2

Node.JS, aby zainstalować nową wersję.

Krok 1: Zainstaluj NVM

npm i -g nvm

Krok 2: NODE Zainstaluj najnowszą wersję

nvm install *.*.*(NodeVersion)

Krok 3: Wybrana wersja węzła

nvm use *.*.*(NodeVersion)

koniec


0

Alias ​​Bash do aktualizacji bieżącej aktywnej wersji:

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

Część sed -rn "s/v([[:digit:]]+).*/\1/p"przekształca dane wyjściowe, nvm currenttak że zwracana jest tylko główna wersja węzła, tj .: v13.5.0-> 13.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.