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/