[ ] Meine Windows-Installation ist nicht englisch.
[x] Lesen Sie die README-Datei, um sich über npm-Gotchas und Antivirus-Probleme zu informieren.
[x] stellte sicher, dass dies keine Frage zur Verwendung von NVM für Windows ist, da gitter für Fragen und Kommentare verwendet wird.
[ ] settings.txt
Gleiches Ergebnis wie nvm use 4.4.4
Ausgabe: node v (64-bit) is not installed.
eine .nvmrc
Datei mit 4.4.4
als Knotenversion erstellt.
Gehen Sie zur Befehlszeile und führen Sie nvm use
im selben Ordner wie die Datei aus.
.nvmrc
wurde noch nie unterstützt. Dies ist eine nvm-spezifische Funktion, nicht NVM für Windows.
@coreybutler Ich bin vom Disaster Accountability Project und wir haben einige Entwickler, die Windows verwenden und die .nvmrc
. Wir beginnen, nvm-windows
für unsere freiwilligen Webentwickler zu übernehmen, und ich möchte, dass Sie die Unterstützung von .nvmrc
überdenken. Dies ist die Site, auf der wir .nvmrc verwenden.
@inunotaisho26 - Im .nvmrc
beginnt sich mit spezifischen Umgebungsmanagementproblemen zu beschäftigen, was den Umfang des Projekts drastisch erhöht. Ich sehe im "Umweltmanagement" ein grundsätzlich anderes Problem als im "Versionsmanagement". Wir haben diese unterschiedlichen Anwendungsfälle in der Arbeitsgruppe Versionsverwaltung diskutiert.
Diese Funktion wurde zwar schon einmal angefordert, aber ich habe nicht genügend Freizeit, um sie zu unterstützen. Aufgrund der Anzahl von Leuten, die allgemeine Umgebungsmanagement-Lösungen (neben nur .nvmrc) anfordern, experimentiere ich mit Ideen für eine kommerzielle Umgebungsmanagement-App, um diese Prozesse zu rationalisieren. Der Zeitaufwand für die Unterstützung der großen Wunschliste der Community erfordert Finanzierung oder Sponsoring, daher werde ich mich wahrscheinlich auf die Infrastruktur stützen, die ich bereits für Fenix aufgebaut habe . Der Haken: keine ETA.
Das heißt, siehe die Roadmap . Die "kostenlose" Lösung, die ich vorgeschlagen habe, ist ein Hook-System, ähnlich wie pre-commit
, post-push
usw. von git. Dies würde es Entwicklern ermöglichen, ihre eigenen Skripte zu erstellen, die für ihre eigenen einzigartigen Umgebungen förderlich sind. Denken Sie an Aktionen wie post-install
, pre-use
, pre-execute
usw. Dies würde es Benutzern ermöglichen, ein Hook-Skript zu schreiben, das nach einer .nvmrc-Datei sucht und die Version im Handumdrehen wechselt .
@coreybutler Also im Grunde zwei verschiedene Ansätze zum Installieren mehrerer Versionen von Node, oder?
Irgendwie. Es gibt zwei verschiedene Philosophien, aber es geht mehr darum, Node zu verwenden, als es zu installieren.
Philosophie 1: Native Use (direkter Prozess)
Der Knoten selbst unterstützt .nvmrc
. Es installiert nur seine eigene ausführbare Datei und npm. Es wird _verwendet_, indem node.exe direkt ausgeführt wird.
Philosophie 2: Augmented Use (Teilprozess)
.nvmrc
ist eine Konvention, die vom ursprünglichen nvm-Projekt eingeführt wurde. Anstatt node.exe direkt aufzurufen, wird ein Shim verwendet. Der Shim ist dafür verantwortlich, eine Pseudoumgebung zu konfigurieren, bevor er Befehle an die ausführbare Datei des Knotens weitergibt (dh der Knoten ist ein Unterprozess des Shims). Hier wird die .nvmrc
Logik verarbeitet. Der Haken, insbesondere unter Windows, ist, dass der Knoten im Kontext des Shims und nicht im Kontext des Benutzers ausgeführt wird. Dies hat eine Reihe von Auswirkungen/Herausforderungen, wie z in einigen Fällen) falsche Darstellung von Dateipfaden (dh __dirname
verhält sich unerwartet) usw. Diese Probleme können umgangen werden, aber sie kommen noch hinzu, wenn man eine Unternehmensumgebung in Betracht zieht (Active Directory-Bereitstellungen, eingeschränkte Desktops, SAN-Laufwerke usw.).
Die allgemeine Versionsverwaltung erfordert ein gewisses Maß an Shimming, um zu verhindern, dass der Knoten jedes Mal deinstalliert/neu installiert wird, wenn Sie eine Version wechseln müssen (was ewig dauern würde). NVM4W entspricht dem ersten Ansatz, indem es Symlinks verwendet, um das Installationsverzeichnis_ zu verschieben, im Gegensatz zu Option 2, bei der die ausführbare Datei verschoben wird. Infolgedessen führen Sie die ausführbare Datei node.exe immer direkt aus, anstatt sie als Unterprozess auszuführen.
Kleine Beule zu diesem Problem. Bin gerade drauf reingelaufen.
So schwer kann es doch nicht ernsthaft sein. Gehen Sie wie folgt vor, wenn eine Version nicht an nvm use
geliefert wird:
Mit anderen Worten, ohne Angabe der Versionsnummer ist nvm use
eine Kombination aus nvm install < .nvmrc
und nvm use < .nvmrc
(Pseudo-Befehl - funktioniert momentan nicht).
Mehr ist nicht drin.
Kleine Beule zu diesem Problem. Bin gerade drauf reingelaufen.
So schwer kann es doch nicht ernsthaft sein. Gehen Sie wie folgt vor, wenn eine Version nicht an
nvm use
geliefert wird:1. Take version from .nvmrc 2. Is this version installed? If not -> install it 3. Is this version currently in use? If not -> use it. 4. Done
Mit anderen Worten, ohne Angabe der Versionsnummer ist
nvm use
eine Kombination ausnvm install < .nvmrc
undnvm use < .nvmrc
(Pseudo-Befehl - funktioniert momentan nicht).Mehr ist nicht drin.
Ich bin froh, dass ich nicht der einzige mit diesem Problem bin...
Überlege, für die Entwicklung zurück zu Linux zu wechseln :/
@thany @jeromemeichelbeck Fühlen Sie sich frei, das Projekt zu
Hilfreichster Kommentar
Kleine Beule zu diesem Problem. Bin gerade drauf reingelaufen.
So schwer kann es doch nicht ernsthaft sein. Gehen Sie wie folgt vor, wenn eine Version nicht an
nvm use
geliefert wird:Mit anderen Worten, ohne Angabe der Versionsnummer ist
nvm use
eine Kombination ausnvm install < .nvmrc
undnvm use < .nvmrc
(Pseudo-Befehl - funktioniert momentan nicht).Mehr ist nicht drin.