it-swarm.com.de

nvm "vergisst" den Knoten in der neuen Terminalsitzung nicht

Bei Verwendung einer neuen Terminalsitzung in OS X vergisst nvm die Knotenversion und hat standardmäßig den Wert "nichts":

_$ nvm ls_:

_         .nvm
     v0.11.12
     v0.11.13
_

Ich muss in jeder Sitzung _nvm use v.0.11.13_ weiterschlagen:

_         .nvm
     v0.11.12
->   v0.11.13
_

Ich habe sowohl die brew -Installation als auch das offizielle Installationsskript ausprobiert.

Mein .profile für die Brühversion:

_#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
_

Gibt es einen Hinweis darauf, was ich falsch mache?

496
frhd

Versuchen Sie 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

1082
dylants

Alias ​​an node selbst, um zu vermeiden, dass der Standardalias zusammen mit den späteren Aktualisierungen der Knotenversion aktualisiert wird.

nvm alias default node
74
Tarun

So installieren Sie die neueste stabile Version:

nvm install stable

So setzen Sie die Standardversion auf die stabile Version (anstelle einer bestimmten Version):

nvm alias default stable

So listen Sie installierte Versionen auf:

nvm list

Ab v6.2.0 sieht es ungefähr so ​​aus:

$ nvm list
         v4.4.2
->       v6.2.0
default -> stable (-> v6.2.0)
node -> stable (-> v6.2.0) (default)
stable -> 6.2 (-> v6.2.0) (default)
iojs -> N/A (default)
39
ohho

nvm erledigt seine Aufgabe, indem es die PATH-Variable ändert. Sie müssen also sicherstellen, dass Sie Ihren PATH nach dem Aufrufen des Skripts nvm.sh nicht auf irgendeine andere Weise ä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.

23
Jeff Mikels

In meinem Fall hatte ein anderes Programm PATH Änderungen zu .bashrc hinzugefügt.

Wenn das andere Programm die PATH nach der Initialisierung von nvm ändert, werden die PATH -Änderungen von nvm vergessen und wir erhalten die Systemknoten auf unserem PATH (oder keinem Knoten).

Die Lösung bestand darin, das nvm-Setup an den unteren Punkt von .bashrc zu verschieben

### BAD .bashrc ###

# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"

Lösung:

### GOOD .bashrc ###

# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"

# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

(Dies war mit Bash 4.2.46 unter CentOS. Es scheint mir ein Fehler in Bash zu sein, aber ich kann mich irren.)

20
joeytwiddle

Die bestbewerteten Lösungen schienen für mich nicht zu funktionieren. Meine Lösung ist unten:

  1. Deinstalliere nvm vollständig mit homebrew: brew uninstall nvm
  2. Installieren Sie brew install nvm neu
  3. Führen Sie im Terminal die folgenden Schritte aus (diese werden auch bei der Installation von nvm über Homebrew aufgeführt):

    mkdir ~/.nvm cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh

Mit den oben beschriebenen Schritten wird das Arbeitsverzeichnis von NVM zu Ihrem $ HOME-Pfad hinzugefügt, nvm-exec in das Arbeitsverzeichnis von NVM kopiert und zu $ ​​HOME/.bashrc, $ HOME/.zshrc oder der entsprechenden Konfigurationsdatei Ihrer Shell hinzugefügt aufgeführt bei einer NVM-Installation mit Homebrew)

9
Joe

Wenn Sie alles noch ohne Glück versucht haben, können Sie dies versuchen: _

1 -> NVM deinstallieren

rm -rf ~/.nvm

2 -> Entfernen Sie npm-Abhängigkeiten, indem Sie this folgen

3 -> NVM installieren

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

4 -> Stellen Sie die ~/.bash_profile Konfiguration ein

Sudo nano ~/.bash_profile ausführen

Kopieren Sie diese und fügen Sie sie anschließend ein

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

5 -> CONTROL + X Speichern Sie die Änderungen

6 -> . ~/.bash_profile ausführen

7 -> Jetzt sollte nvm auf Ihrem Computer installiert sein, um den Knoten zu installieren, führen Sie nvm install v7.8.0 aus. Dies ist die Standardknotenversion, oder Sie können eine beliebige Version des Knotens installieren

6
Gabbar

Diese Frage wurde für OSX gestellt, ist mir aber in meinem Linux-Betriebssystem passiert. Ich habe versucht, nvm alias default <version> zu verwenden, 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 , und fügen Sie den folgenden Code in .bashrc und source .bashrc ein.

export NVM_DIR="/home/bonnie/.nvm"
## If the file exists and is not empty
if [ -s "$NVM_DIR/nvm.sh" ]; then
    ## Source it
    source "$NVM_DIR/nvm.sh"
fi
NODE_DEFAULT_VERSION=$(<"$NVM_DIR/alias/default")
export PATH="$NVM_DIR/versions/node/$NODE_DEFAULT_VERSION/bin":$PATH

beschreibender Lösungslink

4

führen Sie dies aus, nachdem Sie eine beliebige Version installiert haben.

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; Sudo cp -r $n/{bin,lib,share} /usr/local

Dieser Befehl kopiert die über nvm aktive Version des Knotens in das Verzeichnis/usr/local/und stellt die Berechtigungen so ein, dass alle Benutzer darauf zugreifen können.

2
Mouafa Ahmed

Ich habe hier einen neuen Weg gefunden. Die Verwendung von nInteraktives Verwalten Ihrer Node.js hilft.

2
Harshit Garg

Wenn Sie beispielsweise nvm install 10.14 ausführen, wird diese Version für die aktuelle Shell-Sitzung nvm use, aber es wird nicht immer als Standard für zukünftige Sitzungen festgelegt, wie Sie es erwarten würden. Die Knotenversion, die Sie in einer neuen Shell-Sitzung erhalten, wird durch nvm alias default bestimmt. Verwirrenderweise legt nvm install nur den Standardalias fest, wenn dieser noch nicht festgelegt ist. Gehen Sie folgendermaßen vor, um das erwartete Verhalten zu erhalten:

nvm alias default ''; nvm install 10.14

Dadurch wird sichergestellt, dass diese Version heruntergeladen wird. Verwenden Sie sie für die aktuelle Sitzung. nd Legen Sie sie als Standard für zukünftige Sitzungen fest.

2
Denis Howe

Nach einer langen Zeit des Konflikts mit diesem Problem habe ich herausgefunden, wie es behoben werden kann. Hier ist eine schrittweise Lösung für das Problem:

  • Öffnen Sie das Terminal und installieren Sie die Kommandozeilen-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

  • Drücken Sie Enter
  • Falls Sie den .nvm-Ordner bereits zuvor erstellt haben, wird die folgende Fehlermeldung angezeigt:

    fatal: destination path '.nvm' already exists and is not an empty directory.

    Andernfalls wird der Klonprozess so lange ausgeführt, bis er abgeschlossen ist.

  • Sehen Sie sich die neueste NVM-Version an:

    cd ~/.nvm

  • Drücken Sie Enter

    git checkout v0.34.0

    Sie erhalten eine Antwort ähnlich der folgenden:

    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 Fehler aufgetreten. Geben Sie ihnen keine Beachtung.

    nvm ls-remote | tail -n9

  • Drücken Sie Enter

    nvm list

  • Öffne bash mit vim:

    vim ~/.bash_profile

  • Drücken Sie im VIM-Editor: i, um INSERT mode einzugeben. und beginne eine neue Zeile. Wenn Sie beim Bearbeiten Fehler haben, drücken Sie ESC und dann :q! ohne Speichern zu beenden.

    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 Taste ESC, wenn Sie die Bearbeitung der Datei abgeschlossen haben (der INSERT-Modus wird ausgeblendet).

  • Drücken Sie :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 Version von NVM:

    nvm install 12.6.0

  • Wenn der Vorgang abgeschlossen ist, wird Folgendes angezeigt: Now using node v12.6.0 (npm v6.9.0)

  • Sie können überprüfen, ob die Installation erfolgreich war, indem Sie auf Folgendes klicken:

    node -v oder npm -v sollte es Zeigen Sie die auf Ihrem System installierten Versionen von nvm und npm an.

Basierend auf: So installieren Sie das neueste Node Version Manager NVM und installieren es Node und NPM unter macOS Mac OS X

0
Eden Sharvit

Wenn Sie auch SDKMAN haben ...

Irgendwie widersprach SDKMAN meinem NVM. Wenn Sie mit diesem Problem noch immer nicht klar sind, habe ich es einfach behoben, indem ich das "DIES MUSS AT DAS ENDE DER DATEI ..." von SDKMAN ignoriert und abgelegt habe die NVM-Zeilen danach.

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/myname/.sdkman"
[[ -s "/Users/myname/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/myname/.sdkman/bin/sdkman-init.sh"

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
0
itsDrew
$ nvm alias default {NODE_VERSION}

wenn Sie den obigen Befehl verwenden, aktualisieren Sie nur die Knotenversion, aber npm verwendet weiterhin die alte Version.

Hier ist eine andere Lösung für die Aktualisierung der beiden node und npm, in meinem Fall möchte ich den Knoten 8.9.4 verwenden und ich habe den folgenden Befehl verwendet.

$ nvm use default 8.9.4

Und der Befehl gibt die Ausgabe zurück.

Jetzt mit Node v8.9.4 (npm v5.6.0)

0
Anish Agarwal