In unserer täglichen Entwicklung stoßen wir oft auf folgende Situation: Es gibt mehrere Projekte, jedes mit unterschiedlichen Anforderungen, und daher müssen verschiedene Projekte von unterschiedlichen Versionen der NodeJS-Laufzeitumgebung abhängen. Ohne ein geeignetes Tool wäre dieses Problem sehr knifflig.

nvmnvm entstand, wie es die Zeit erforderte. nvm ist ein Node-Verwaltungstool auf dem Mac, etwas ähnlich wie rvm zur Verwaltung von Ruby. Wenn Sie node unter Windows verwalten müssen, wird offiziell empfohlen,nvmw zu verwendenodernvm-windowsAllerdings ist nvm-windows kein einfacher Port von nvm, und sie haben überhaupt keine Beziehung zueinander. Aber alle unten vorgestellten Befehle können in nvm-windows ausgeführt werden.


Der Unterschied zwischen nvm und n

Ein weiteres Node-Versionsverwaltungstool ist der großartigen-Befehl von TJ. Der Befehl n existiert als Node-Modul, während nvm ein externes Shell-Skript ist, das unabhängig von node/npm ist, daher ist der Befehl n im Vergleich zu nvm eingeschränkter.

Da die von npm installierten Modulpfade alle/usr/local/lib/node_modulessind, wird beim Verwenden von n zum Wechseln zwischen verschiedenen Node-Versionen das globale node/npm-Verzeichnis tatsächlich gemeinsam genutzt. Daher kann es die Anforderung, "je nach Node-Version unterschiedliche globale Node-Module zu verwenden", nicht gut erfüllen.


Global installiertes node/npm deinstallieren

Das von der offiziellen Website heruntergeladene Node-Installationspaket installiert sich nach der Ausführung automatisch im globalen Verzeichnis. Bei der Verwendung treten häufig einigeBerechtigungsproblemeauf, daher wird empfohlen, das global installierte node/npm gemäß den folgenden Methoden zu deinstallieren.

Öffnen Sie zunächst Ihren Finder, drücken Sieshift+command+G, öffnen Sie das Fenster "Gehe zum Ordner", geben Sie die folgenden Verzeichnisse jeweils ein und löschen Sie nach der Eingabenodeundnode_moduleszugehörige Dateien und Ordner:

  • Öffnen Sie/usr/local/lib, löschen Sienodeundnode_moduleszugehörige Dateien und Ordner
  • Öffnen Sie/usr/local/include, löschen Sienodeundnode_moduleszugehörige Dateien und Ordner
  • Wenn Siebrew install nodeverwendet haben, um NodeJS zu installieren, dann müssen Sie außerdem im Terminal den Befehlbrew uninstall nodeausführen, um zu deinstallieren
  • Überprüfen Sie alle folgenden unter Ihrem persönlichen Home-Ordnerlocal、libundincludeOrdner und löschen Sie allenodeundnode_moduleszugehörige Dateien und Ordner
  • Öffnen Sie/usr/local/binund löschen Sie die ausführbaren Dateien vonnodeexecutable files

Möglicherweise müssen Sie außerdem einige zusätzliche Befehle in Ihrem Terminal eingeben:

sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules

Windows-Installation

Zuallererst und am wichtigsten: Stellen Sie sicher, dass Sie das installierte NodeJS deinstallieren, sonst kommt es zu Konflikten. Laden Sie dannnvm-windowsdas neueste Installationspaket herunter und installieren Sie es direkt.


OS X/Linux-Installation

Anders als bei Windows müssen wir das vorhandene NodeJS nicht unbedingt zuerst deinstallieren. Natürlich empfehlen wir trotzdem, es zuerst zu deinstallieren. Außerdem benötigen Sie einen C++-Compiler. Bei Linux-Distributionen müssen Sie sich normalerweise keine Gedanken darüber machen; zum Beispiel kann Ubuntu direktbuild-essential-Suite; für OS X können SieX-Code-Kommandozeilen-Tools verwenden. Führen Sie einfach diesen Befehl aus:

xcode-select --install

Unter Linux: (falls es sich um eine Debian-Distribution handelt)

sudo apt-get install build-essential

Dann können wir

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

oder

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

verwenden, um aus der Ferne dasinstall.sh-Skript herunterzuladen und auszuführen. Beachten Sie, dass sich diese Versionsnummerv0.33.0mit der Projektentwicklung ändert. Jederzeit ist es überden offiziellen neuesten Installationsbefehlvon Vorteil, die neueste Installationsversion zu überprüfen.


Mehrere Versionen von node/npm installieren

Wenn wir beispielsweise Version 4.2.2 installieren möchten, können wir den folgenden Befehl verwenden:

nvm install 4.2.2

nvm folgt denSemantic Versioning-Benennungsregeln. Wenn Sie beispielsweise die neueste4.2Version der Serie installieren möchten, können Sie ausführen:

nvm install 4.2

nvm sucht nach4.2.xder höchsten Version zur Installation.

Mit dem folgenden Befehl können Sie alle verfügbaren Versionen auf dem Remote-Server auflisten:

nvm ls-remote

Für Windows ist es:

nvm ls available

Zwischen verschiedenen Versionen wechseln

Immer wenn wir eine neue Version von Node installieren, setzt die globale Umgebung diese neue Version automatisch als Standard.

nvm bietet dennvm use-Befehl. Die Verwendung dieses Befehls ist ähnlich wie beiminstall-Befehl.

Wechseln Sie zum Beispiel zu4.2.2:

nvm use 4.2.2

Zur neuesten wechseln4.2.x:

nvm use 4.2

Zu iojs wechseln:

nvm use iojs-v3.2.0

Zur neuesten Version wechseln:

nvm use node

Jedes Mal, wenn ein Wechsel ausgeführt wird, verknüpft das System das Node-Executable mit der Datei der jeweiligen Version.

Wir können auch nvm verwenden, um Aliase für verschiedene Versionsnummern festzulegen:

nvm alias awesome-version 4.2.2

Wir geben4.2.2dieser Versionsnummer einen Namen namensawesome-version, und dann können wir ausführen:

nvm use awesome-version

Der folgende Befehl kann den Alias entfernen:

nvm unalias awesome-version

Außerdem können Sie auchdefaultdiesen speziellen Alias festlegen:

nvm alias default node

Installierte Instanzen auflisten

nvm ls

Der grüne Pfeil oben zeigt die aktuell verwendete Version an, und die festgelegten Aliase werden unten ebenfalls aufgelistet.


Verschiedene Node-Versionen in Projekten verwenden

Wir können eine.nvmrc-Datei im Projektverzeichnis erstellen, um die zu verwendende Node-Version anzugeben. Führen Sie dann im Projektverzeichnisnvm useaus, und das war's..nvmrcDer Dateiinhalt muss lediglich den oben erwähnten Regeln für semantische Versionierung folgen. Es gibt außerdem ein Tool namensavn, das diesen Prozess automatisieren kann.


Wie sollte npm in mehreren Umgebungen verwendet werden?

Jede Node-Version enthält eine andere npm-Version. Sie könnennpm -vverwenden, um die npm-Version anzuzeigen. Global installierte npm-Pakete werden nicht zwischen verschiedenen Node-Umgebungen geteilt, da dies zu Kompatibilitätsproblemen führen würde. Sie werden in Verzeichnissen der verschiedenen Versionen abgelegt, zum Beispiel~/.nvm/versions/node/<version>/lib/node_modules</version>ein solches Verzeichnis. Dadurch ersparen wir uns auch die Mühe, unter Linuxsudozu verwenden. Da dies der Home-Ordner des Benutzers ist, entstehen keine Berechtigungsprobleme.

Aber hier kommt das Problem: Müssen alle npm-Pakete, die wir installiert haben, neu installiert werden? Glücklicherweise haben wir eine Möglichkeit, unser Problem zu lösen. Führen Sie den folgenden Befehl aus, um von einer bestimmten Version in die neue Version von Node zu importieren, die wir installieren werden:

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

Weitere Befehle

Eine bestimmte Version von Node direkt ausführen

nvm run 4.2.2 --version

Eine bestimmte Version von Node in einem Unterprozess des aktuellen Terminals ausführen

nvm exec 4.2.2 node --version

Den Pfad einer bestimmten Version von Node bestätigen

nvm which 4.2.2

Andere Implementierungen von Node installieren, wie z. B. iojs (eine Node-Implementierung basierend auf ES6, die inzwischen mit Node zusammengeführt wurde)

nvm install iojs-v3.2.0

Schnellbefehle:

  • nvm install nodeDie neueste Version von Node installieren
  • nvm install iojsDie neueste Version von iojs installieren
  • nvm install unstableDie neueste instabile Version von Node installieren

Originaler Link: http://bubkoo.com/2017/01/08/quick-tip-multiple-versions-node-nvm/