Füllen Sie dieses Formular aus, um Ihre Gedanken mitzuteilen und sich für Fortschrittsaktualisierungen anzumelden.
Aktualisierungen werden auch auf der LinkedIn-Seite von Author Software veröffentlicht.
Der von Microsoft/npm/Google empfohlene Node.js-Versionsmanager für Windows .
Das ursprüngliche NVM ist ein völlig separates Projekt nur für Mac/Linux. Dieses Projekt verwendet eine völlig andere Philosophie und ist nicht nur ein Klon von NVM. Einzelheiten finden Sie unter Warum ein anderer Versionsmanager? Und was ist der große Unterschied?
Können Sie nicht sponsern? Erwägen Sie die Nominierung von @coreybutler für einen Github-Star. |
Haben Sie Probleme? Weitere Informationen finden Sie im Wiki zu häufigen Problemen.
Ich suche Feedback:Wir arbeiten an Runtime (rt), dem Nachfolger von NVM für Windows. Bitte tragen Sie dazu bei, indem Sie sich eine Minute Zeit nehmen, um dieses Formular auszufüllen. Danke schön! |
Verwalten Sie mehrere Installationen von node.js auf einem Windows-Computer.
tl;dr Ähnlich (nicht identisch) wie nvm, aber für Windows. Hat ein Installationsprogramm. Jetzt herunterladen!
Dies war schon immer ein Knotenversionsmanager, kein io.js-Manager, daher gibt es keine Rückunterstützung für io.js. Knoten 4+ wird unterstützt. Denken Sie daran, dass Windows beim Ausführen nvm install
oder nvm use
normalerweise Administratorrechte benötigt (um Symlinks zu erstellen). Um die neueste Version von Node.js zu installieren, führen Sie nvm install latest
aus. Um die neueste stabile Version zu installieren, führen Sie nvm install lts
aus.
Es gibt Situationen, in denen die Möglichkeit, zwischen verschiedenen Versionen von Node.js zu wechseln, sehr nützlich sein kann. Wenn Sie beispielsweise ein Modul, das Sie entwickeln, mit der neuesten Version testen möchten, ohne die stabile Version von Node zu deinstallieren, kann dieses Dienstprogramm hilfreich sein.
Der einfachste (empfohlene) Weg, NVM für Windows ordnungsgemäß zum Laufen zu bringen, besteht darin, alle vorherigen Knoteninstallationen zu deinstallieren, bevor NVM für Windows installiert wird. Es vermeidet alle unten aufgeführten Fallstricke. Jedoch; Möglicherweise möchten Sie Ihre Node-Installation nicht zerstören, wenn Sie sie stark angepasst haben. NVM für Windows kann die Verwaltung einer vorhandenen Installation übernehmen, allerdings gibt es dabei Nuancen (die vollständig von den Berechtigungen des Benutzers abhängen, der die Installation ausführt). Wenn Sie über ein Administratorkonto verfügen, ist es relativ sicher, NVM für Windows zu installieren, bevor Sie die ursprüngliche Node-Version deinstallieren. Wenn Sie in einer geschlossenen Umgebung arbeiten, beispielsweise in einer Active Directory-Unternehmensumgebung, in der Installationen/Deinstallationen durch Gruppenrichtlinien gesteuert werden, sollten Sie wirklich darüber nachdenken, die ursprüngliche Version von Node zu entfernen, bevor Sie NVM4W installieren.
Berechtigungsprobleme Aus Sicherheitsgründen lässt Windows nicht zu, dass eine Anwendung eines Anbieters eine Anwendung eines anderen Anbieters „deinstalliert“. Das offizielle NVM4W-Installationsprogramm wird versuchen, die Verwaltung einer vorhandenen Installation von Node. zu übernehmen, kann die ursprüngliche Node.js-Version jedoch nicht deinstallieren. Um dies zu umgehen, versucht das NVM für Windows-Installationsprogramm, die ursprünglichen Node.js-Installationsdateien in das NVM-Stammverzeichnis zu kopieren. Dazu gehören globale npm-Module und -Konfigurationen. Sobald dieser Vorgang abgeschlossen ist, kann die ursprüngliche Node.js-Installation ohne Datenverlust deinstalliert werden.
PATH-Installationsprobleme Wenn Sie versuchen, den NVM_SYMLINK
so zu konfigurieren, dass er ein vorhandenes Verzeichnis verwendet (z. B. C:Program Filesnodejs
), schlägt dies fehl, da ein Symlink ein physisches Verzeichnis nicht überschreiben kann. Dies ist kein Problem, wenn Sie einen anderen Symlink-Pfad wählen (z. B. C:nvmnode
).
PATH-Konflikte Wenn Sie die Originalversion nicht deinstallieren, scheint die Ausführung nvm use
überhaupt nichts zu bewirken. Wenn Sie node -v
ausführen, wird immer die ursprüngliche Installationsversion angezeigt. Dies ist auf einen PATH
Konflikt zurückzuführen, der auftritt, wenn dieselbe Anwendung mehrmals installiert wird. Führen Sie in NVM4W 1.1.11+ nvm debug
aus, um festzustellen, ob ein PATH
Konflikt vorliegt.
Der Einfachheit halber empfehlen wir, alle vorhandenen Versionen von Node.js zu deinstallieren, bevor Sie NVM für Windows verwenden. Löschen Sie alle vorhandenen Node.js-Installationsverzeichnisse (z. B. %ProgramFiles%nodejs
), die möglicherweise noch vorhanden sind. Der von NVM generierte Symlink überschreibt kein vorhandenes (auch kein leeres) Installationsverzeichnis.
? Irgendeine globale npmrc
Konfiguration sichern ? (z. B. %AppData%npmetcnpmrc
)
Alternativ kopieren Sie die Einstellungen in die Benutzerkonfiguration %UserProfile%.npmrc
. Löschen Sie den vorhandenen npm-Installationsspeicherort (z. B. %AppData%npm
), um globale Modulkonflikte zu verhindern.
Verwenden Sie das neueste Installationsprogramm (wird mit einem Deinstallationsprogramm geliefert). Alternativ folgen Sie der manuellen Installationsanleitung.
Wenn NVM4W nicht sofort nach der Installation zu funktionieren scheint, starten Sie das Terminal/die Powershell neu (nicht den gesamten Computer).
Nach der Installation muss für jede installierte Version des Knotens eine Neuinstallation globaler Dienstprogramme (z. B. Garn) durchgeführt werden:
nvm use 14.0.0 npm install -g yarn nvm use 12.0.1 npm install -g yarn
Ab Version 1.1.8 gibt es ein Upgrade-Dienstprogramm, das den Upgrade-Prozess automatisiert.
Um nvm-windows zu aktualisieren , führen Sie das neue Installationsprogramm aus. Die zu aktualisierenden Dateien werden sicher überschrieben, ohne dass Ihre node.js-Installationen berührt werden. Stellen Sie sicher, dass Sie denselben Installations- und Symlink-Ordner verwenden. Wenn Sie ursprünglich an den Standardspeicherorten installiert haben, müssen Sie nur in jedem Fenster auf „Weiter“ klicken, bis der Vorgang abgeschlossen ist.
nvm-windows wird in einer Admin-Shell ausgeführt . Sie müssen powershell
oder die Eingabeaufforderung als Administrator starten, um nvm-windows verwenden zu können
NVM für Windows ist ein Befehlszeilentool. Geben Sie einfach nvm
in die Konsole ein, um Hilfe zu erhalten. Die Grundbefehle sind:
nvm arch [32|64]
: Zeigt an, ob der Knoten im 32- oder 64-Bit-Modus ausgeführt wird. Geben Sie 32 oder 64 an, um die Standardarchitektur zu überschreiben.
nvm debug
: Überprüfen Sie den NVM4W-Prozess auf bekannte Probleme.
nvm current
: Aktive Version anzeigen.
nvm install
: Die Version kann eine bestimmte Version sein, „latest“ für die neueste aktuelle Version oder „lts“ für die neueste LTS-Version. Geben Sie optional an, ob die 32- oder 64-Bit-Version installiert werden soll (standardmäßig System Arch). Setzen Sie [arch] auf „all“, um 32- und 64-Bit-Versionen zu installieren. Fügen Sie --insecure
am Ende dieses Befehls hinzu, um die SSL-Validierung des Remote-Download-Servers zu umgehen.
nvm list [available]
: Listet die node.js-Installationen auf. Geben Sie am Ende available
ein, um eine Liste der zum Download verfügbaren Versionen anzuzeigen.
nvm on
: Aktivieren Sie die Versionsverwaltung von node.js.
nvm off
: Deaktiviert die Versionsverwaltung von node.js (deinstalliert nichts).
nvm proxy [url]
: Legen Sie einen Proxy fest, der für Downloads verwendet werden soll. Lassen Sie [url]
leer, um den aktuellen Proxy anzuzeigen. Setzen Sie [url]
auf „none“, um den Proxy zu entfernen.
nvm uninstall
: Deinstallieren Sie eine bestimmte Version.
nvm use
: Wechseln Sie zur Verwendung der angegebenen Version. Verwenden Sie optional latest
, lts
oder newest
“. newest
ist die zuletzt installierte Version. Geben Sie optional eine 32/64-Bit-Architektur an. nvm use
verwendet weiterhin die ausgewählte Version, wechselt jedoch in den 32/64-Bit-Modus. Informationen zur use
in einem bestimmten Verzeichnis (oder zur Verwendung .nvmrc
) finden Sie in Problem Nr. 16.
nvm root
: Legen Sie das Verzeichnis fest, in dem nvm verschiedene Versionen von node.js speichern soll. Wenn
nicht festgelegt ist, wird das aktuelle Stammverzeichnis angezeigt.
nvm version
: Zeigt die aktuell ausgeführte Version von NVM für Windows an.
nvm node_mirror
: Legen Sie den Knotenspiegel fest. Menschen in China können https://npmmirror.com/mirrors/node/ verwenden.
nvm npm_mirror
: Legen Sie den NPM-Spiegel fest. Menschen in China können https://npmmirror.com/mirrors/npm/ verwenden.
Bitte beachten Sie, dass alle von Ihnen installierten globalen NPM-Module nicht von den verschiedenen Versionen von node.js, die Sie installiert haben, gemeinsam genutzt werden. Darüber hinaus werden einige npm-Module möglicherweise nicht in der von Ihnen verwendeten Knotenversion unterstützt. Achten Sie daher bei der Arbeit auf Ihre Umgebung.
Benutzer haben einige Probleme bei der Verwendung von Antivirenprogrammen, insbesondere McAfee, gemeldet. Es scheint, dass die Antivirensoftware den Zugriff auf die VBScript-Engine manipuliert. Einzelheiten und Lösung finden Sie in Problem Nr. 133.
v1.1.8 ist nicht codesigniert , aber alle anderen Versionen sind von Ecor Ventures LLC/Author.io signiert. Dies sollte dazu beitragen, Fehlalarme bei den meisten Antivirenprogrammen zu verhindern.
v1.1.8+ war aufgrund eines abgelaufenen Zertifikats nicht mit dem Code signiert (die Gründe finden Sie in den Versionshinweisen). v1.1.9 ist dank ajyong, der das neue Zertifikat gesponsert hat, mit einem Code signiert .
tldr; npm i -g yarn
Weitere Informationen finden Sie im Wiki.
Installieren Sie go von http://golang.org
Laden Sie die Quelle herunter / Git Klonen Sie das Repo
Ändern Sie GOARCH in build.bat in amd64, wenn Sie eine ausführbare 64-Bit-Datei erstellen möchten
Starten Sie eine Windows-Eingabeaufforderung und ändern Sie das Verzeichnis in das Projektverzeichnis
Führen Sie den Befehl go get github.com/blang/semver
Führen go get github.com/olekukonko/tablewriter
Führen Sie build.bat
aus
Überprüfen Sie das Verzeichnis dist
auf das generierte Setup-Programm.
Es gibt mehrere Versionsmanager für node.js. Tools wie nvm und n laufen nur unter Mac OSX und Linux. Windows-Benutzer bleiben im Regen stehen? Nein. nvmw und nodist sind beide für Windows konzipiert. Warum also ein weiterer Versionsmanager für Windows?
Die Architektur der meisten Knotenversionsmanager für Windows basiert auf .bat
Dateien, die einige clevere Tricks zum Festlegen oder Nachahmen von Umgebungsvariablen ausführen. Einige von ihnen verwenden den Knoten selbst (sobald er heruntergeladen wurde), was bewundernswert, aber anfällig für Probleme ist. Ungefähr um Knoten 0.10.30 herum änderte sich die Installationsstruktur ein wenig, was dazu führte, dass einige davon mit nichts Neuem einfach nicht mehr funktionierten.
Darüber hinaus fällt es einigen Benutzern schwer, diese Module zu installieren, da hierfür etwas mehr Kenntnisse über die Installationsstruktur des Knotens erforderlich sind. Ich glaube, wenn es für die Leute einfacher wäre, zwischen Versionen zu wechseln, würden sie sich vielleicht die Zeit nehmen, ihren Code auf früheren und zukünftigen Versionen zu testen ... was einfach eine gute Praxis ist.
Erstens ist diese Version von NVM nicht vom Knoten abhängig. Es ist in Go geschrieben, was einen viel strukturierteren Ansatz darstellt als das Herumhacken einer begrenzten .bat
Datei. Es ist nicht auf eine vorhandene Knoteninstallation angewiesen. Go bietet die Möglichkeit, eine Mac-/Linux-Version auf derselben Codebasis zu erstellen. Tatsächlich ist dies bereits im Gange.
Auch der Kontrollmechanismus ist recht unterschiedlich. Es gibt zwei allgemeine Möglichkeiten, Installationen mit mehreren Knoten mit Hot-Switching-Funktionen zu unterstützen. Die erste besteht darin, den PATH
jedes Mal zu ändern, wenn Sie die Version wechseln, oder ihn zu umgehen, indem Sie eine .bat
Datei verwenden, um die ausführbare Datei des Knotens nachzuahmen und entsprechend umzuleiten. Das kam mir immer ein wenig hackisch vor, und diese Implementierung hat einige Macken zur Folge.
Die zweite Möglichkeit besteht darin, einen Symlink zu verwenden. Dieses Konzept erfordert das Einfügen des Symlinks in den PATH
und die anschließende Aktualisierung seines Ziels auf das Knoteninstallationsverzeichnis, das Sie verwenden möchten. Dies ist ein unkomplizierter Ansatz und scheint das zu sein, was die Leute empfehlen ... bis ihnen klar wird, wie schmerzhaft Symlinks unter Windows sind. Deshalb ist es noch nie passiert.
Um einen Symlink zu erstellen/ändern, müssen Sie als Administrator ausgeführt werden und die Windows-Benutzerkontensteuerung (diese lästige Eingabeaufforderung) umgehen. Glücklicherweise ist dies eine Herausforderung, die ich bereits mit einigen Hilfsskripten in Node-Windows gelöst habe. Daher verwaltet NVM für Windows nur während der Installation einen einzigen symbolischen Link, der in den PATH
eingefügt wird. Der Wechsel zu anderen Knotenversionen erfordert einen Wechsel des Symlink-Ziels. Daher ist es für dieses Dienstprogramm nicht erforderlich, dass Sie nvm use xxx
jedes Mal ausführen, wenn Sie ein Konsolenfenster öffnen. Wenn Sie nvm use xxx
ausführen , wird die aktive Version des Knotens automatisch in allen geöffneten Konsolenfenstern aktualisiert. Es bleibt auch zwischen Systemneustarts bestehen, sodass Sie nvm nur verwenden müssen, wenn Sie eine Änderung vornehmen möchten.
NVM für Windows wird mit einem Installationsprogramm geliefert, das als Nebenprodukt meiner Arbeit an Fenix Web Server entstanden ist.
Insgesamt vereint dieses Projekt einige Ideen, ein paar kampferprobte Teile anderer Module und Unterstützung für neuere Versionen von Node.
NVM für Windows erkennt die „neuesten“ Versionen anhand einer vom Node-Projekt bereitgestellten Liste. Version 1.1.1+ verwenden diese Liste. Bevor diese Liste existierte, habe ich Veröffentlichungen gescrapt und als eigenständigen Daten-Feed bereitgestellt. Diese Liste wurde in den Versionen 1.1.0 und früher verwendet, ist jedoch jetzt veraltet.
Ich brauchte es schlicht und einfach. Darüber hinaus ist es offensichtlich, dass der Knotenkern keine Unterstützung für mehrere Versionen bietet. Es war auch ein Vorwand, mit Go zu spielen.
Ich habe mich für Go entschieden, weil es plattformübergreifend ist, weniger Aufwand verursacht als Java und es schon länger gibt, als die meisten Leute denken. Außerdem wollte ich damit experimentieren. Ich wurde gefragt, warum ich es nicht mit Node geschrieben habe. Der Versuch, ein Tool mit dem Tool zu schreiben, das Sie installieren möchten, ergibt für mich keinen Sinn. Daher waren meine Projektanforderungen dafür einfach ... etwas, das nicht Node ist. Node wird sich weiterentwickeln und verändern. Wenn Sie daran erinnert werden müssen, denken Sie an io.js, Ayo, alle bahnbrechenden Änderungen zwischen 4.xx und 6.xx und die Umstellung auf ES-Module in 12+. Veränderungen sind in der Welt der Software unvermeidlich. JavaScript ist äußerst dynamisch.
Vielen Dank an alle, die Probleme auf und außerhalb von Github eingereicht, Vorschläge gemacht und allgemein dazu beigetragen haben, dass dieses Projekt besser wird. Besonderer Dank geht an
@vkbansal, der während der frühen Veröffentlichungen wichtiges frühes Feedback gegeben hat.
@rainabba und @sullivanpt für die Integration der Node v4-Unterstützung.
@shadow, der das seit langem bestehende Space-Escape-Problem in Pfadnamen gelöst hat (#355).
ajyong, der Ende 2021 das Code Signing-Zertifikat gesponsert hat.