Vergisst bei Verwendung einer neuen Terminalsitzung in OS X nvm
die Knotenversion und verwendet standardmäßig nichts:
$ nvm ls
::
.nvm
v0.11.12
v0.11.13
Ich muss nvm use v.0.11.13
in jeder Sitzung weiter schlagen :
.nvm
v0.11.12
-> v0.11.13
Ich habe sowohl die brew
Installation als auch das offizielle Installationsskript ausprobiert .
Meine .profile
für die Brauversion:
#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Und für das Skript install.sh:
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash
#nvm
export NVM_DIR="/Users/farhad/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
.bash_profile
.bashrc
Antworten:
Versuchen Sie es
nvm alias default
. Zum Beispiel:$ nvm alias default 0.12.7
Dadurch wird die Standardknotenversion in Ihrer Shell festgelegt. Stellen Sie dann sicher, dass die Änderung bestehen bleibt, indem Sie das Shell-Fenster schließen, ein neues öffnen und dann:
node --version
quelle
$ nvm alias default 0.11.13
und$ nvm use 0.11.12
bekomme ichnode --version = 0.11.12
. In einer neuen Sitzung ist der Knoten jedoch wieder weg. In Debian habe ich dieses Problem überhaupt nicht.nvm alias defaul X
. Mit der richtigen Verwendung funktioniert es tatsächlich.nvm install X
Dann wäre der Workflow also wohlnvm alias default X
. Vielen Dank für Ihre Hilfe!NVM_DIR
After exportiertenvm.sh
. Stellen Sie sicher, dass Sie dasNVM_DIR
vorher exportieren .nvm alias default
die Knotenversion nicht für die aktuelle Umgebung festgelegt wird, sondern nur für alle neuen..bash_profile
(oder.bashrc
oder was auch immer) Sie haben nichts zu modifizieren ,PATH
nachdemsource xx/nvm.sh
Alias für sich
node
selbst, um zu vermeiden, dass der Standardalias später zusammen mit Aktualisierungen der Knotenversion aktualisiert wird.quelle
node alias default stable
?stable
. Aus den NVM-Dokumenten: "Stable: Dieser Alias ist veraltet und gilt nur für Node v0.12 und früher. Derzeit ist dies ein Alias für Node."node
Standard gehört dies? Der von NVM in der aktuellen Shell installierte und verwendete Knoten oder der Knoten, der möglicherweise vom Installationspaket des Knotens oder von Homebrew usw. auf dem System installiert wurde?node
(undstable
, aber alles, was in semver veröffentlicht wird, ist stabil, das ist jetzt ein nutzloses Wort) verwendet die neueste verfügbare Version. Für lokale Befehle zuletzt installiert; Für Remote-Befehle, spätestens verfügbar.So installieren Sie die neueste stabile Version:
So setzen Sie die Standardeinstellung auf die stabile Version (anstelle einer bestimmten Version):
So listen Sie installierte Versionen auf:
Ab
v6.2.0
ungefähr sieht es so aus:quelle
nvm list
hilft den Benutzern zu visualisieren, was mit ihrer Versionierung passiert. Vielen Dank!In meinem Fall hatte ein anderes Programm
PATH
Änderungen hinzugefügt.bashrc
Wenn das andere Programm die Initialisierung
PATH
nach nvmPATH
ändern würde , würden die Änderungen von nvm vergessen und wir würden den Systemknoten auf unseremPATH
(oder keinem Knoten) erhalten.Die Lösung bestand darin, das NVM-Setup nach unten zu verschieben
.bashrc
Lösung:
(Dies war mit Bash 4.2.46 unter CentOS. Es scheint mir ein Fehler in Bash zu sein, aber ich kann mich irren.)
quelle
nvm erledigt seine Aufgabe durch Ändern der PATH-Variablen. Sie müssen also sicherstellen, dass Sie Ihren PATH nach dem Sourcing des Skripts nvm.sh nicht irgendwie in etwas anderes ändern.
In meinem Fall wurde nvm.sh in .bashrc aufgerufen, aber dann wurde die PATH-Variable in .bash_profile aktualisiert, wodurch meine Sitzung den Systemknoten vor dem nvm-Knoten fand.
quelle
nvm alias default
undnvm use
an die von mir benötigte Version zu verschieben..bashrc
:export NVM_DIR="$HOME/.nvm"
then. "/usr/local/opt/nvm/nvm.sh"
Die am besten bewerteten Lösungen schienen für mich nicht zu funktionieren. Meine Lösung ist unten:
brew uninstall nvm
brew install nvm
Führen Sie im Terminal die folgenden Schritte aus (diese werden auch bei der Installation von nvm über Homebrew aufgelistet):
Mit den oben beschriebenen Schritten wird das NVM-Arbeitsverzeichnis zu Ihrem $ HOME-Pfad hinzugefügt, nvm-exec in das NVM-Arbeitsverzeichnis kopiert und zu $ HOME / .bashrc, $ HOME / .zshrc oder der entsprechenden Konfigurationsdatei Ihrer Shell hinzugefügt (erneut aus whats entnommen) aufgeführt bei einer NVM-Installation mit Homebrew)
quelle
Wenn Sie alles noch kein Glück versucht haben, können Sie dies versuchen: _
1 -> NVM deinstallieren
2 -> Remove npm Abhängigkeiten durch folgende diese
3 -> NVM installieren
4 ->
~/.bash_profile
Konfiguration einstellenLauf
sudo nano ~/.bash_profile
Kopieren und fügen Sie anschließend ein
5 ->
CONTROL + X
Änderungen speichern6 -> Ausführen
. ~/.bash_profile
7 -> Jetzt sollten Sie
nvm
auf Ihrem Computer installiert haben. Um den Knotenlauf zu installieren, istnvm install v7.8.0
dies die Standardknotenversion, oder Sie können eine beliebige Version des Knotens installierenquelle
Diese Frage wurde für OSX erwähnt, ist mir aber in meinem Linux-Betriebssystem passiert. Ich habe versucht,
nvm alias default <version>
aber für jede neue Terminalsitzung wurde die verwendete Knotenversion vergessen. Also, hier ist die Lösung, die ich herausgefunden habe.Stellen Sie sicher, dass Sie einen Standardalias für die Knotenversion festlegen, geben Sie den folgenden Code in .bashrc und ein
source .bashrc
.beschreibender Lösungslink
quelle
v
beim Einstellen der Fernbedienung die in der Version enthalten ist. ZBv4.2.4
statt4.2.4
.Wenn Sie
nvm install 10.14
beispielsweisenvm use
diese Version für die aktuelle Shell-Sitzung ausführen, wird sie nicht immer wie erwartet als Standard für zukünftige Sitzungen festgelegt. Die Knotenversion, die Sie in einer neuen Shell-Sitzung erhalten, wird durch bestimmtnvm alias default
. Verwirrenderweisenvm install
wird der Standardalias nur festgelegt, wenn er noch nicht festgelegt ist. Gehen Sie folgendermaßen vor, um das erwartete Verhalten zu erhalten:Dadurch wird sichergestellt, dass diese Version heruntergeladen wird, für die aktuelle Sitzung verwendet und als Standard für zukünftige Sitzungen festgelegt wird.
quelle
Führen Sie dies aus, nachdem Sie eine Version installiert haben.
Dieser Befehl kopiert jede Version des Knotens, den Sie über nvm aktiv haben, in das Verzeichnis / usr / local / und legt die Berechtigungen so fest, dass alle Benutzer darauf zugreifen können.
quelle
&&
s anstelle von;
s zu verwenden. Wenn derwhich
Knoten nicht gefunden werden kann, möchten wir nicht mit chmod fortfahren/bin/*
!Ich habe hier einen neuen Weg gefunden. Die
n
interaktive Verwendung von Node.js hilft.quelle
fish
Shell verwende, aber die akzeptierte Antwort hat bei mir nicht funktioniert.n
funktioniert ein Genuss!Ich benutze ZSH, also musste ich
~/.zshrc
die Zeilen bezüglich NVM in dieser Reihenfolge ändern :quelle
Wenn wir den obigen Befehl verwenden, aktualisieren Sie nur die Knotenversion, aber
npm
die alte Version wird weiterhin verwendet.Hier ist eine andere Lösung für die Aktualisierung der beiden
node
undnpm
in meinem Fall möchte ich Knoten verwenden8.9.4
und ich habe den folgenden Befehl verwendet.Und der Befehl gibt die Ausgabe zurück.
quelle
Wenn Sie auch SDKMAN haben ...
Irgendwie widersprach SDKMAN meinem NVM. Wenn Sie damit am Ende sind und es immer noch nicht herausfinden können, habe ich es einfach behoben, indem ich das "DAS MUSS AM ENDE DER DATEI SEIN ..." von SDKMAN ignoriert und die NVM-Zeilen danach gesetzt habe.
quelle
Bei der Verwendung des integrierten Terminals im VS-Code-Editor trat das gleiche Problem auf. Das Neustarten von VS Code nach dem Ändern der Knotenversion mit nvm hat das Problem für mich behoben.
quelle
Hier ist eine einfache Anleitung:
1) Installieren:
2) Einmal pro Terminal verwenden
3) Standardmäßig für alle Terminals einrichten
Möglicherweise müssen Sie Root-Berechtigungen verwenden, um diese Aktionen auszuführen.
Und vergessen Sie nicht, die NVM-Dokumentation zu lesen, um weitere Informationen zu erhalten.
Beachten Sie auch, dass Sie möglicherweise die Knotenversion für Ihre IDE angeben müssen:
quelle
Auch für den Fall, dass Sie einen Knoten vor nvm installiert hatten, checken Sie in Ihrem ~ / .bash_profile ein, um Folgendes nicht zu haben:
Wenn Sie es haben, kommentieren / entfernen Sie es und nvm sollte anfangen, die Standardknotenversion zu verarbeiten.
quelle
Nach einer langen Zeit des Konflikts mit diesem Problem habe ich herausgefunden, wie ich es beheben kann. Hier ist eine schrittweise Lösung für das Problem:
Öffnen Sie das Terminal und installieren Sie die Befehlszeilen-Entwicklertools:
xcode-select --install
Drücken Sie Enter
Installieren Sie die neueste Version von NVM:
cd ~/
Drücken Sie Enter
git clone https://github.com/creationix/nvm.git .nvm
Falls Sie den Ordner .nvm bereits zuvor erstellt haben, wird die nächste Fehlermeldung angezeigt:
fatal: destination path '.nvm' already exists and is not an empty directory.
Andernfalls wird der Klonvorgang so lange ausgeführt, bis er abgeschlossen ist.
Schauen Sie sich die neueste NVM-Version an:
cd ~/.nvm
Drücken Sie Enter
git checkout v0.34.0
Sie erhalten eine ähnliche Antwort wie:
HEAD is now at 3d9c31d v0.34.0
Die Version kann auf verschiedenen Systemen unterschiedlich sein.
ls
Drücken Sie Enter
. nvm.sh
Drücken Sie Enter
nvm list
Drücken Sie Enter
Sie werden die verschiedenen auf Ihrem Computer installierten Knotenversionen sehen. Möglicherweise sind einige Fehler aufgetreten. Achten Sie nicht darauf.
nvm ls-remote | tail -n9
Drücken Sie Enter
nvm list
Öffnen Sie die Bash mit vim:
vim ~/.bash_profile
Drücken Sie im Vim-Editor:, um eine neue Zeile
i
einzugebenINSERT mode
und zu beginnen. Wenn Sie beim Bearbeiten Fehler haben, drücken SieESC
Taste und beenden Sie:q!
das Programm ohne zu speichern.export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Drücken Sie die
ESC
Taste, wenn Sie die Bearbeitung der Datei abgeschlossen haben (der INSERT-Modus verschwindet).:wq
, um die Datei zu speichern.Drücken Sie Enter
nvm ls-remote | tail -n9
Drücken Sie die Eingabetaste und installieren Sie die neueste vorgestellte NVM-Version:
nvm install 12.6.0
Wenn der Vorgang abgeschlossen ist, sehen Sie:
Now using node v12.6.0 (npm v6.9.0)
Sie können überprüfen, ob die Installation erfolgreich ist, indem Sie Folgendes drücken:
node -v
odernpm -v
es sollte Ihnen die auf Ihrem System installierten Versionen von nvm und npm anzeigen.quelle