Jak zaktualizować npm w systemie Windows?

81

Kiedy instaluję węzeł 0.10.33 z msi ( http://nodejs.org/download/ ), otrzymuję starą wersję npm (1.4.28). Jak mogę zaktualizować npm w systemie Windows?

npm install -g npm

nie działa; Nadal mam stary npm.

Sam Mikes
źródło
Możesz również wyświetlić odpowiedzi na pytanie na: stackoverflow.com/questions/18412129/…
bohem.be
@ bohem.be - to dotyczy sposobu aktualizacji nodew systemie Windows, co jest przydatne; ale to pytanie / odpowiedź dotyczy aktualizacji npm.
Sam Mikes
o ile wiem, npm jest częścią aktualizacji lub instalacji węzła (Node Package Manager)
bohem.be
To moja ostatnia odpowiedź, ponieważ nie jest to forum dyskusyjne. Sprawdź ten stackoverflow.com/questions/9237715/… . Przeczytaj jeszcze raz moją odpowiedź na stackoverflow.com/questions/18412129/ ... a zobaczysz, że aktualizuję npm, a nie węzeł.
bohem.be
„Jest to niestety powszechne błędne przekonanie, że akronim oznacza„ menedżer pakietów węzłów ”.
Sam Mikes,

Odpowiedzi:

155

Musisz postępować zgodnie z instrukcjami aktualizacji systemu Windows ( https://docs.npmjs.com/try-the-latest-stable-version-of-npm )

tl; dr - npm -g install npm wykonuje pracę, ale stara wersja jest jeszcze KMP w PATH.

Aby to naprawić, wykonaj jedną z następujących czynności:

Opcja 2: usuń oba pliki

C:\Program Files (x86)\nodejs\npm

C:\Program Files (x86)\nodejs\npm.cmd

Lub

Opcja 3: Otwórz cmd.exe jako administrator, przejdź do C: \ Program Files (x86) \ nodejs, a następnie uruchom instalację bez -g:

npm install npm@latest

* Istnieje pakiet npm, który automatyzuje tę opcję 3:

npm install -g npm-win-upgrade

Sam Mikes
źródło
1
To jest problem, z którym borykam się od tygodni, teraz został rozwiązany :) Dzięki za odpowiedź!
sonlexqt
1
Kluczowym elementem jest to, że po wykonaniu powyższych czynności uruchom ponownie powłokę, aby przełączyła się z wersji zainstalowanej w folderze węzłów na wersję zainstalowaną w folderze AppData
Kyle Chadha
1
Reco for Option 3 ... Copy / Paste: cd / c / 'Program Files / nodejs' && npm install npm @ latest
benek
1
npm install npm @ latest działał świetnie, z wyjątkiem klientów, którzy nadal byli <2.0
beauXjames
Dlaczego nie użyć -gflagi z tym npm install npm@latestpodejściem? U mnie zadziałało z -gflagą, podczas gdy żadna z pozostałych nie działała
Overdrivr
44

W Microsoft Open Source napisaliśmy małe narzędzie do automatyzacji procesu opisanego powyżej. Możesz go znaleźć tutaj lub po prostu zainstalować i uruchomić, wykonując następujące czynności w wierszu polecenia z podwyższonym poziomem uprawnień / PowerShell:

npm install -g npm-windows-upgrade
npm-windows-upgrade
Felix Rieseberg
źródło
1
Potrzebuje powłoki PowerShell. Co się stanie, jeśli nie mogę uruchomić skryptów PowerShell pobranych z Internetu i nie mam uprawnień do zmiany ustawień? Chyba muszę stworzyć certyfikat i go podpisać. Za dużo bólu głowy
rofrol
1
Wykonałem wszystkie kroki i otrzymałem tylko błąd: PS C: \ Windows \ system32> npm-windows-upgrade npm-windows-upgrade: Termin „npm-windows-upgrade” nie jest rozpoznawany jako nazwa polecenia cmdlet, funkcja, plik skryptu lub program operacyjny. Sprawdź pisownię nazwy lub, jeśli ścieżka została dołączona, sprawdź, czy jest ona poprawna i spróbuj ponownie. W linii: 1 char: 1 + npm-windows-upgrade + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (npm-windows-upgrade: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
Dan Csharpster
1
Mam dokładnie ten sam problem, co @DanCsharpster, wykonując wszystkie kroki dla Powershell jako administrator.
Wesley Musgrove
2
Korekta: I został posiadające dokładnie ten sam problem co @DanCsharpster następujące wszystkich etapów PowerShell jako administrator, ale ten problem został rozwiązany przez dodanie C: \ Users \ UserAdmin \ AppData \ Roaming \ npm na mojej ścieżce, zamykającym PowerShell i ponownym otwarciu go jako Admin.
Wesley Musgrove
Miał ten sam problem co Dan i Wesley. Byłem w stanie rozwiązać ten problem z powyższą wskazówką Wesleya.
Loathian
15

Może istnieć wiele sposobów aktualizacji npmw systemie Windows

Sposób 1

  1. Otwórz powłokę zasilania jako Administrator i uruchom następujące polecenia krok po kroku.
  2. Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
  3. npm install -g npm-windows-upgrade
  4. npm-windows-upgrade
  5. Tutaj możesz wybrać preferowaną wersję npm
  6. Gotowy do wyjścia !

Sposób 2

  1. Możesz po prostu zaktualizować do najnowszej npmwersji za pomocą następującego polecenia
  2. npm install npm@latest -g
  3. lub jeśli chcesz konkretną wersję npmpo prostu uruchomić
  4. npm install npm@{version} -g na przykład npm install [email protected] -g

Teraz po prostu uruchom npm --versionlub npm -vpoznaj swoją aktualną wersję npm

3.3.12to moja preferowana wersja npmtego najlepszego zestawu dla każdego opakowania.

Vivek Maru
źródło
1
Sposób 2 to jedyny sposób, który działa po wyjęciu z pudełka:npm install npm@latest -g
Overdrivr
7

A więc TL; DR; to zadziałało:

  1. Odinstaluj node

  2. W wierszu polecenia uruchom where npm

  3. Jeśli zainstalowałeś npm przez chocolatey, zobaczysz ścieżkę taką jak C: \ ProgramData \ chocolatey \ bin \ npm.exe - USUŃ to!
  4. Teraz zainstaluj NodeJS przy użyciu odpowiedniego MSI z https://nodejs.org/en/download/
  5. W ulubionej powłoce wpisz npm --version- powinno to teraz odzwierciedlać wersję NPM dostarczoną z NodeJS (w momencie pisania tego tekstu była to wersja 3.10.10)

To właśnie zadziałało dla mnie (goofy me!). Miałem (wiek temu) zainstalowałem npm przez chocolatey, który utworzył czekoladowy zainicjowany npm.exe w C: \ ProgramData \ chocolatey \ bin \ npm.exe. To była npm wersja 1.4.9 i nie zaktualizowała się bez względu na to, co zrobiono, w tym odinstalowanie i ponowne zainstalowanie NodeJ.

=======

EDYCJA: Lepszy sposób instalacji node i npm

Na dzień dzisiejszy (27.06.2017) najlepszym sposobem instalowania i zarządzania node i npm jest zainstalowanie nvm (Node Version Manager), jak wyjaśniono tutaj: https://github.com/coreybutler/nvm-windows . Gdy masz już nvm, instalacja dowolnej wersji węzła jest bardzo łatwa:

  1. Otwórz swoją ulubioną konsolę (CMD, Cmder, PowerShell)
  2. Rodzaj nvm install 6.10.2 (aby zainstalować wersję węzła 6.10.2)
  3. Aby zobaczyć aktualnie aktywną wersję, wpisz nvm list. To drukuje coś takiego jak poniżej:

  6.9.3   
* 6.9.2 (Currently using 64-bit executable)
  6.9.1
  6.10.2

Sudhanshu Mishra
źródło
1
Uratowałeś mój dzień !! Miałem ten sam problem. Zainstalowałem nodejs używając chocolatey i nie mogłem zaktualizować wersji npm.
dsmyrnaios
1

Musisz postępować zgodnie z instrukcjami aktualizacji systemu Windows

https://www.npmjs.com/package/npm-windows-upgrade

Najpierw upewnij się, że możesz wykonywać skrypty w systemie, uruchamiając następujące polecenie z podwyższonego poziomu programu PowerShell. Aby uruchomić PowerShell jako administrator, kliknij Start, wyszukaj PowerShell, kliknij prawym przyciskiem myszy PowerShell i wybierz Uruchom jako administrator.

  1. Set-ExecutionPolicy Unrestricted -Scope CurrentUser-Force
  2. npm install --global --production npm-windows-upgrade
  3. npm-windows-upgrade

Chcesz po prostu zainstalować najnowszą wersję? 1.npm-windows-upgrade --npm-version najnowszy

Ganesh Apune
źródło
0

Zrobiłem coś podobnego do Sama Mikesa. Dzielę się tym tylko dlatego, że nie mogłem zmusić żadnego z jego rozwiązań do pracy na moim sprzęcie. Po krótkiej zabawie zadziałało to:

  1. Usuń NPM / węzeł ze zmiennych środowiskowych, zarówno dla użytkownika, jak i systemu.
  2. Zamknij otwartą konsolę, jeśli jest otwarta, a następnie otwórz konsolę jako administrator
  3. Zmień katalogi na %USERPROFILE% - to jest zmienna środowiskowa okna, do której się przenosiC:\Users\CurrentlyLoggedInUser
  4. Uruchom z konsoli w% USERPROFILE%, "C:\Program Files\nodejs\npm" install npm -g (możesz mieć swoje w folderze x86)
  5. Jeśli to rozwiązanie zadziała, krok 4 zadziałałby i npm -v pokazałby aktualną wersję
  6. Ponownie dodaj węzeł (w Program Files) / NPM (w danych aplikacji - ten zainstalowany w Program Files powinien być stary) do zmiennych środowiskowych użytkownika i systemu

Uwaga: w przeszłości korzystałem z automatycznego skryptu firmy Microsoft, aby to naprawić, ale tylko dlatego, że nie zdawałem sobie sprawy, jak łatwo byłoby to zrobić samodzielnie.

kayleeFrye_onDeck
źródło
Ha! Więc zaktualizowałem, a następnie musiałem obniżyć wersję i ponownie napotkałem ten problem ... Początkowo napisałem tę odpowiedź dla LTS 4.2.3 i działa ona dla LTS 4.4.0
kayleeFrye_onDeck
0

Tak więc żadna z poprzednich odpowiedzi nie rozwiązała problemu, więc pomyślałem, że opublikuję moje konkretne rozwiązanie, które udało mi się znaleźć, przeglądając wszystkie inne odpowiedzi, więc były one naprawdę pomocne.

Mój problem polegał na tym, że użyłem chocolatey do zainstalowania node i prawdopodobnie npm (patrząc na czekoladową stronę teraz nie powinienem był tego robić).

Aby rozwiązać problem, musiałem po prostu uruchomić odpowiednie polecenia deinstalacji choco dla npm i węzła, a następnie wszystko zostało przełączone na inną wersję węzła, którą również zainstalowałem za pomocą węzła msi (ze strony węzła).

Mam nadzieję, że pomoże to każdemu, kto poszedł tą samą drogą co ja.

Ben Thomson
źródło
0

Użyj narzędzia npm-windows-upgrade , aby po prostu zaktualizować. Kroki są podane w linku.

ravthiru
źródło
0

Próbowałem prawie każdej odpowiedzi, ale żadna z nich nie działa po mojej myśli.
Ani npm-windows-upgrade nie działało, ani npm install npm @ latest itp. Itp.
Dla ludzi takich jak ja zasugeruję wam pobranie najnowszego instalatora ze strony Node.js , niech istniejąca wersja katalogu węzłów będzie na swoim miejscu i bez zmiany czegokolwiek po prostu zainstaluj instalator msi, a skończy się na ulepszonej wersji node .
Mój przypadek dotyczył aktualizacji węzła z 6 do 8.9.3

hamzox
źródło
Istnieje wiele sposobów aktualizacji. Kiedyś zmarnowałem na to cały dzień pracy. Jeśli napotkasz ten sam problem, skorzystaj z mojego rozwiązania.
hamzox,
0

wszystkie polecenia instalacji npm zacinały się i po pewnym czasie zgłaszały błąd (za błędem proxy). konfiguracja proxy nie pomagała. To właśnie zrobiłem.

Miał 8.11 nodeJS

  1. Odinstalowano NodeJS z poziomu Programy i funkcje za pomocą dezinstalatora.
  2. Uruchom ponownie (lub prawdopodobnie możesz uciec od zabicia wszystkich procesów związanych z węzłami z Menedżera zadań).
  3. Poszukaj tych folderów i usuń je (i ich zawartość), jeśli istnieją. W zależności od zainstalowanej wersji, ustawień UAC i architektury procesora, mogą one istnieć lub nie: • C: \ Program Files (x86) \ Nodejs • C: \ Program Files \ Nodejs • C: \ Users {User} \ AppData \ Roaming \ npm (lub% appdata% \ npm) • C: \ Users {User} \ AppData \ Roaming \ npm-cache (lub% appdata% \ npm-cache) • C: \ Users {User} .npmrc (i ewentualnie sprawdź to bez przedrostka.)
  4. Sprawdź zmienną środowiskową% PATH%, aby upewnić się, że nie istnieją żadne odniesienia do Nodejs ani npm.
  5. Jeśli nadal nie jest odinstalowany, wpisz gdzie węzeł w wierszu polecenia, a zobaczysz, gdzie się znajduje - usuń to (i prawdopodobnie katalog nadrzędny).
  6. Uruchom ponownie, na wszelki wypadek.

Zainstalowałem 6.11 nodejs, a potem zadziałało.

user11582062
źródło
0

Aby zaktualizować NPM w systemie Windows 10

  1. Odinstaluj Node.js
  2. Uruchom ponownie system
  3. w wierszu polecenia wpisz, gdzie npm
  4. Usuń, jeśli folder npm i npm-cache istnieje w AppData / Roaming
  5. Zainstaluj Node.js ( https://nodejs.org/en/ )
vinay k hegde
źródło
-3

Do aktualizacji węzła npm w systemie Windows

Muszę usunąć węzeł w:

C: \ Users ** TWÓJ UŻYTKOWNIK ** \ AppData \ Roaming

I ponownie zainstaluj node

Batusy
źródło