Wie kann ich die Version von npm mit nvm ändern?

238

Ich habe NVM verwendet, um die neuesten Versionen von nodeJS für meine Knotenarbeit zu installieren. Es funktioniert völlig gut, um separate Versionen zu installieren und zwischen ihnen zu wechseln. Außerdem wird die neueste Version von NPM in jedem lokalen Ordner ... / bin zusammen mit der Knoten-Binärdatei installiert. Es scheint jedoch keine Möglichkeit zu geben, die von mir verwendete NPM-Version zu wechseln (oder ich kann es zumindest nicht herausfinden).

Die einzige Lösung, die ich mir vorstellen kann, besteht darin, die Standard-Binärdatei zu löschen (dies ist der NPM, der installiert wurde, als ich den Knoten zum ersten Mal mit NVM installiert habe) und stattdessen die neueste NPM-Binärdatei zu platzieren. Ich frage mich jedoch, ob es dafür bessere Möglichkeiten gibt.

thisissami
quelle
1
Warum möchten Sie die Version von NPM ändern? Es ist nicht so, dass Sie ein Paket installieren, das nur mit einer alten Version von NPM funktioniert. Und nach Knoten 0.6 wird der Knoten mit dem neuesten NPM geliefert. Wenn Sie also die Knotenversion ändern, ändert sich auch die npm-Version.
Farid Nouri Neshat
1
außer es geht nicht über NVM. Ja, der Knoten wird mit NPM geliefert, aber das bedeutet nur, dass eine Binärdatei daneben installiert wird. Ich kann beide Binärdateien in ihren jeweiligen Ordnern sehen, aber wenn ich "nvm use v0.6.13" ausführe, bleibt die verwendete npm-Binärdatei diejenige, die mit der älteren Version des Knotens installiert wurde, anstatt der mit der neuesten Version.
Thisissami
1
Hier ist der Code für npm: github.com/creationix/nvm/blob/master/nvm.sh#L135-148 , der seit 0.6 nicht mehr benötigt wird. Vielleicht sollten Sie versuchen, diesen Teil zu entfernen. Das sollte helfen. Sie können auch ein Problem mit Github erstellen.
Farid Nouri Neshat
Ich arbeite gerade an diesem Problem, jede Hilfe wird geschätzt - stackoverflow.com/questions/50976138/…
Alexander Mills

Antworten:

329

BEARBEITEN: Einige Jahre, seit diese Frage zum ersten Mal beantwortet wurde, wie in einer neueren Antwort angegeben , gibt es jetzt einen Befehl dafür:

nvm hat jetzt einen Befehl zum Aktualisieren von npm. Es ist nvm install-latest-npmoder nvm install --latest-npm.

nvm install-latest-npm: Versuchen Sie, auf die neueste npmVersion der aktuellen Knotenversion zu aktualisieren

nvm install --latest-npm: Versuchen Sie nach der Installation, ein Upgrade auf die neueste funktionierende npm auf der angegebenen Knotenversion durchzuführen

Nachfolgend finden Sie frühere Überarbeitungen der richtigen Antwort auf diese Frage.

Über drei Jahre, nachdem diese Frage zum ersten Mal gestellt wurde, scheint die Antwort jetzt viel einfacher zu sein. Aktualisieren Sie einfach die Version, auf der nvm installiert ist ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Ich habe gerade den Knoten 4.2.2 installiert, der mit npm 2.14.7 geliefert wird, aber ich möchte npm 3 verwenden. Also habe ich Folgendes getan:

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

Einfach!

Und ja, dies sollte für jedes Modul funktionieren, nicht nur für npm, das für eine bestimmte Version des Knotens "global" sein soll.


BEARBEITEN 1: In der neuesten Version npm -gist es intelligent und installiert Module im obigen Pfad anstelle des globalen Systempfads.


Vielen Dank an @philraj, dass Sie in einem Kommentar darauf hingewiesen haben.

Lawrence
quelle
13
und für diejenigen, die nicht wissen, wo ihr nvm ist, wie ich, laufen a which npm.
Larry
16
Und wenn Sie eine andere Version von npm als die neueste möchten, führen npm install [email protected]Sie diese spezifische Version aus, z. B.[email protected]
Michael
2
Ähnliches funktioniert auch für NVM-Windows , z cd ~/AppData/Roaming/nvm/v5.10.1.
Abwesenheit
2
Für jeden, der nvm für Windows verwendet, kann dasselbe wie oben ausgeführt werden (npm install npm wird ausgeführt), jedoch an den Knoteninstallationsorten für Windows. In Windows 10 ist dies ~ / AppData / Roaming / nvm / [Ihre Version]. dh Benutzer \ mein Benutzername \ AppData \ Roaming \ nvm \ v9.7.1
Sean Holmesby
3
Noch einfacher: nvm install-latest-npmwie unten von samlandfried beantwortet - stackoverflow.com/a/47519162/5991278
philraj
43

nvm behandelt npm nicht.

Wenn Sie also den Knoten 0.4.x installieren möchten (von dem viele Pakete noch abhängen) und NPM verwenden möchten, können Sie weiterhin npm 1.0.x verwenden.

Installieren Sie den Knoten 0.6.x (der mit npm 1.1.x geliefert wird) und installieren Sie nvm mit npm:

npm install nvm
. ~/nvm/nvm.sh

Installieren Sie den Knoten 0.4.x mit nvm:

nvm install v0.4.12
nvm use v0.4.12

Installieren Sie npm mit install.sh (beachten Sie den -LParameter, um Weiterleitungen zu befolgen):

curl -L https://npmjs.org/install.sh | sh

Dadurch wird der Knoten 0.4.12 erkannt und npm 1.0.106 in Ihrem Ordner ~ / nvm / v0.4.12 / lib / node_modules installiert und ein Symlink für nvm erstellt

~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

Wenn Sie versuchen, npm auszuführen, wird immer noch ein Fehler ausgegeben. Wenn Sie dies jedoch nvm use v0.4.12erneut tun , sollte es jetzt funktionieren.

Fidschiaaron
quelle
3
Vielen Dank! Ein Hinweis, dass die URL geändert wurde zu: curl https://npmjs.org/install.sh | sh
Tristen
7
Ist das jetzt eine wirklich alte Antwort? Mein npm wird von nvm automatisch als Abhängigkeit von der von mir verwendeten Knotenversion heruntergeladen.
Damon Smith
2
Ja. Es ist alt. Wenn Sie immer noch Knoten 0.4 und einen alten NVM verwenden, wird dieses Problem möglicherweise angezeigt.
Fijiaaron
1
Die URL wurde erneut geändert, um www zu erzwingen. Verwenden Sie curl -Ldiese Option , um der Weiterleitung zu folgen.
Neal Ehardt
32

nvm hat jetzt einen Befehl zum Aktualisieren von npm. Es ist nvm install-latest-npmoder npm install --latest-npm.

samlandfried
quelle
3
Haben Sie dazu einen Link zur Dokumentation?
Allicarn
1
Aus der nvm helpKonsolenausgabe: --latest-npm After installing, attempt to upgrade to the latest working npm on the given node versionIch habe jedoch in den nvmDokumenten keinen Verweis darauf gefunden . Bitte teilen Sie, wenn Sie es finden.
Samlandfried
Danke dir! Dies sollte wirklich als die richtige Antwort markiert werden.
Philraj
Es ist nur auf 32 Bit verfügbar
Negin Basiri
30
npm install npm@x.x.x -g
npm install npm@5.4.0 -g
Ocko
quelle
2
Obwohl es sich um nvm handelt, bin ich dafür tatsächlich hierher gekommen, danke. Upvoting.
Atrahasis
26

Ich bin unter Windows und konnte nichts davon zum Laufen bringen. Ich bekam immer wieder Fehler, weil Dateien im Weg waren. Dies funktionierte jedoch:

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest

cd %APPDATA%\nvm\v8.10.0 # or whatever version you're using
rm npm-old
rm npm-old.cmd
cd node_modules\
rm -rf npm-old

Und Boom, ich bin wieder im Geschäft.

Ryan Shillington
quelle
3
Danke, das hat auch bei mir unter Windows funktioniert. (hatte das gleiche Problem mit Dateikonflikten)
Venryx
1
Arbeitete für mich thx. Ich verwende nvm unter Windows, um den Knoten zu verwalten, und wollte nvm nach dem Wechsel zur Knotenversion erhöhen. Musste Konsole mit erhöhten Berechtigungen ausführen. Mein Pfad "nodejs" -Ordner ist "C: \ Programme \ nodejs". Dies ist ein Alias ​​für einen anderen Speicherort auf meinem Computer, den nvm zum Zwischenspeichern von Downloads verwendet (nicht APPDATA). Vermutlich habe ich bei der Installation von nvm einen anderen Speicherort ausgewählt.
Moika wird am
2
Vielen Dank, sie müssen wahrscheinlich die Art und Weise korrigieren, wie npm auf jeder alten nodejs-Version unter nvm Windows aktualisiert wird.
Rbinsztock
1
Das hat mir geholfen, npm zu aktualisieren, das mit Node 10.x geliefert wurde. Danke dir!
Andypotato
2
Arbeitete unter Windows mit NodeJS 10.15.3, musste mvzu renund rmzu delund rmdirfür mich wechseln .
Deerchao
17

Das Ändern von npm-Versionen unter Linux-basierten Betriebssystemen ist noch kein einfacher Befehlsprozess. Ich habe folgendes getan, um wieder zu einer älteren Version von npm zu wechseln. Dies sollte funktionieren, damit jede Version von npm funktioniert. Installieren Sie zuerst die Version von npm, die Sie verwenden möchten:

sudo npm install -g npm@X.X.X

Entfernen Sie den Sym-Link in / usr / local / bin /

sudo rm /usr/local/bin/npm

Erstellen Sie den Sym-Link mit der gewünschten Version von npm neu, die Sie installiert haben

sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm
Arun Reddy
quelle
1
Befolgen Sie diese Anweisungen, um von 2.14.7 auf 2.15.9 zu wechseln. Wenn ich jetzt npm -v eingebe, erhalte ich 3.8.6. Teufel noch mal.
Kyle Baker
3
Nachdem ich einige Dinge ausprobiert habe, sudo npm install -g [email protected]bekomme ich nur die Version, von der aus ich antworte npm -v. Dies funktionierte zumindest von 4.x auf 2.15.9.
Kyle Baker
1
In meinem Fall wurde sudo npm install -g [email protected]nur 4.6.1 installiert, aber npm 5.1.0 wurde noch verwendet. Ihr Tipp hilft mir, zu 4.6.1 zu wechseln.
Hung Tran
8

Unter www.npmjs.com/install.sh fand ich heraus, dass es eine Möglichkeit gibt, eine bestimmte Version zu installieren, indem eine Umgebungsvariable festgelegt wird

export npm_install="2.14.14"

Führen Sie dann das Download-Skript wie unter npmjs.com beschrieben aus :

curl -L https://www.npmjs.com/install.sh | sh

Wenn Sie die Variable npm_install nicht festlegen , wird die Version installiert, die als neueste markiert wurde

Jim
quelle
2
Ich musste verwenden curl -L https://www.npmjs.com/install.sh | sudo sh, aaaaund diese Methode funktionierte nicht und brachte mir die neueste Version, obwohl ich diese Umgebungsvariable exportiert hatte. Gott verdammt. Ich wollte Version 2.15.9 von 2.14.7, die Antwort unten brachte mich auf 3.8.6, und jetzt bringt mich diese Antwort auf 4.0.2. WTF.
Kyle Baker
6

Führen Sie in Windows Ihr Terminal als Administrator aus (falls es wie ich Berechtigungsprobleme gibt). Verwenden Sie dann eine bestimmte Knotenversion (z. B. 7.8.0) von

nvm use 7.8.0

Aktualisieren Sie dann Ihre npm auf die gewünschte spezifische Version von

npm install -g npm@5.0.3
adnan2nd
quelle
2

Was ist mit npm i -g npm? Haben Sie versucht, dies auch auszuführen?

Dimitri Reifschneider
quelle
Dies ist immer die schnellste und einfachste, die ich normalerweise benutze.
CTS_AE
2

Leichte Abweichungen von den obigen Anweisungen haben bei mir funktioniert. (MacOS Sierra 10.12.6)

npm install -g npm@3.10.10
rm /usr/local/bin/npm
ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm
npm --version
Nick Grealy
quelle
2
  1. Den Knoten und die npm-Version, die Sie verwenden möchten, finden Sie hier https://nodejs.org/en/download/releases/
  2. nvm use 8.11.4
  3. Sie haben bereits die npm 5.6 mit Knoten 8.11.4 (solide und gut)

Geh einfach mit nvm use node_version

Alvin Smith
quelle
0

Ich hatte das gleiche Problem nach der Installation nvm-windowsüber der vorhandenen Node-Installation. Die Lösung bestand darin, den Anweisungen zu folgen:

Sie sollten auch den vorhandenen npm-Installationsort löschen (z. B. "C: \ Users \ AppData \ Roaming \ npm"), damit stattdessen der nvm-Installationsort korrekt verwendet wird.

Installation & Upgrades

Mein Titel
quelle
0

NVM-Installation und -Verwendung unter Windows

Im Folgenden finden Sie die Schritte für die NVM-Installation unter Windows:

NVM steht für Node Version Manager (Knotenversionsmanager), mit dessen Hilfe Sie die Knotenversionen für eine bestimmte Verwendung wechseln können. Außerdem kann der Benutzer mit mehreren npm- und Knotenversionen arbeiten.

Installieren Sie das NVM-Setup. Verwenden Sie den Befehl "nvm list", um die Liste der installierten Knotenversionen zu überprüfen. Geben Sie "nvm use version number [6.9.3]" ein, um die Version zu wechseln. Für weitere Informationen

Shrinivas Kalangutkar
quelle