844 Stimmen

Nvm vergisst "vergessen" Knoten in neuer Terminal-Sitzung

Bei Verwendung einer neuen Terminalsession in OS X vergisst nvm die Knotenversion und setzt standardmäßig auf nichts zurück:

$ nvm ls:

         .nvm
     v0.11.12
     v0.11.13

Ich muss in jeder Sitzung weiterhin nvm use v.0.11.13 eingeben:

         .nvm
     v0.11.12
->   v0.11.13

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

Mein .profile für die brew-Version:

#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

Und für das install.sh-Skript:

$ 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"  # Dieses lädt nvm

Irgendwelche Hinweise, was ich falsch mache?

7voto

isnvi23h4 Punkte 1768

Diese Frage wurde für OSX erwähnt, aber es ist mir auf meinem Linux-Betriebssystem passiert. Ich habe versucht, nvm alias default zu verwenden, aber die verwendete Node-Version wurde für jede neue Terminalsession vergessen. Hier ist die Lösung, die ich herausgefunden habe.

Stellen Sie sicher, dass eine Standardalias für die Node-Version festgelegt ist, setzen Sie den folgenden Code in die .bashrc-Datei und führen Sie source .bashrc aus.

export NVM_DIR="/home/bonnie/.nvm"
## Wenn die Datei existiert und nicht leer ist
if [ -s "$NVM_DIR/nvm.sh" ]; then
    ## Quelle es ein
    source "$NVM_DIR/nvm.sh"
fi
NODE_DEFAULT_VERSION=$(<"$NVM_DIR/alias/default")
export PATH="$NVM_DIR/versions/node/$NODE_DEFAULT_VERSION/bin":$PATH

Link zur ausführlichen Lösung

5voto

Al Mamun Khan Punkte 61

Linux/ubuntu

wie man das lösen kann, können Sie hier sehen

nvm use ist nicht dazu gedacht, zu persistieren - es gilt nur für die Lebensdauer der Shell.

Sie können entweder nvm alias default node ausführen, wenn Sie möchten, dass dies standardmäßig beim Öffnen neuer Shells erfolgt, oder Sie können eine .nvmrc Datei erstellen, die überall im aktuellen Verzeichnis Vorrang hat, bis hin zu /. https://github.com/nvm-sh/nvm/issues/658

ubutnu-terminal

4voto

Denis Howe Punkte 1710

Wenn Sie beispielsweise nvm install 10.14 ausführen, wird diese Version für die aktuelle Shell-Sitzung verwendet, aber nicht immer wie erwartet als Standard für zukünftige Sitzungen festgelegt. Die Node-Version, die Sie in einer neuen Shell-Sitzung erhalten, wird durch nvm alias default bestimmt. Verwirrenderweise wird nvm install den Standardalias nur setzen, wenn er nicht bereits festgelegt ist. Um das erwartete Verhalten zu erhalten, tun Sie dies:

nvm alias default ''; nvm install 10.14

Dies stellt sicher, dass diese Version heruntergeladen wird, sie für die aktuelle Sitzung verwendet wird und sie als Standard für zukünftige Sitzungen festgelegt wird.

3voto

Ich hatte dasselbe Problem, während ich das integrierte Terminal im VS Code Editor benutzte. Das Neustarten von VS Code nach dem Wechsel der Node-Version mit nvm hat das Problem für mich behoben.

3voto

Kiry Meas Punkte 938
  • Ich verwende NVM mit zsh bash
  • folge diesem Link, um nvm zu entfernen
  • $ brew install nvm
  • Ich habe diese Zeile ausgeführt $ source $(brew --prefix nvm)/nvm.sh nach der Installation und dem Neustart des Terminals
  • Platzieren Sie die folgende Zeile in der Datei ~/.zshrc, wie auch von der nvm offiziellen GitHub-Seite empfohlen

    export NVM_DIR="$HOME/.nvm" [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # Dies lädt nvm [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # Dies lädt nvm bash_completion

    Platzieren Sie dies nach der nvm-Initialisierung!

    autoload -U add-zsh-hook

    load-nvmrc() { local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)"

    if [ -n "$nvmrc_path" ]; then local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$node_version" ]; then
      nvm use
    fi

    elif [ "$node_version" != "$(nvm version default)" ]; then echo "Zurückkehren zur nvm Standardversion" nvm use default fi } add-zsh-hook chpwd load-nvmrc load-nvmrc

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X