Question NVM conserve "oubliant" le noeud dans la nouvelle session de terminal


Lors de l'utilisation d'une nouvelle session de terminal sous OS X, nvm oublie la version du noeud et par défaut à rien:

$ nvm ls:

         .nvm
     v0.11.12
     v0.11.13

Je dois continuer à frapper nvm use v.0.11.13 dans chaque session:

         .nvm
     v0.11.12
->   v0.11.13

J'ai essayé les deux brew installer, ainsi que le script d'installation officiel.

ma .profile pour la version de brassage:

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

Et pour le script 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

Toute idée de ce que je fais mal?


417
2017-07-05 10:05


origine


Réponses:


Essayer nvm alias default. Par exemple:

$ nvm alias default 0.12.7

Ceci définit la version de noeud par défaut dans votre shell. Ensuite, vérifiez que le changement persiste en fermant la fenêtre du shell, en en ouvrant un nouveau, puis: node --version 


928
2017-07-05 14:00



Alias ​​à node lui-même pour éviter de mettre à jour l'alias par défaut avec les mises à jour de version de noeud plus tard.

nvm alias default node

70
2017-08-06 14:58



Pour installer la dernière version stable:

nvm install stable

Pour définir par défaut la version stable (au lieu d'une version spécifique):

nvm alias default stable

Pour répertorier les versions installées:

nvm list

À partir de v6.2.0, ça ressemblera à quelque chose comme:

$ 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)

31
2018-06-01 06:37



nvm fait son travail en changeant la variable PATH, vous devez donc vous assurer que vous ne changez pas votre PATH en quelque chose d'autre après avoir trouvé le script nvm.sh.

Dans mon cas, nvm.sh était appelé dans .bashrc, mais la variable PATH était mise à jour dans .bash_profile, ce qui entraînait la découverte du noeud système par le noeud avant le noeud nvm.


17
2017-07-08 15:22



Les solutions les mieux notées ne semblaient pas fonctionner pour moi. Ma solution est ci-dessous:

  1. Désinstallez complètement nvm en utilisant homebrew:brew uninstall nvm 
  2. Réinstaller brew install nvm 
  3. Dans Terminal, suivez les étapes ci-dessous (ils sont également listés lors de l'installation de nvm via homebrew):

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

Les étapes décrites ci-dessus ajoutent le répertoire de travail de NVM à votre chemin $ HOME, copient nvm-exec dans le répertoire de travail de NVM et ajoute à $ HOME / .bashrc, $ HOME / .zshrc ou au fichier de configuration équivalent de votre shell. listé sur une installation NVM en utilisant homebrew)


6
2017-09-29 04:18



Dans mon cas, un autre programme avait ajouté PATH changements à .bashrc

Si l'autre programme a changé le PATH  après L'initialisation de nvm, puis nvm's PATH les changements seraient oubliés, et nous aurions le nœud du système sur notre PATH (ou pas de nœud).

La solution consistait à déplacer la configuration nvm vers le bas de .bashrc

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

Solution:

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

(C'était avec bash 4.2.46 sur CentOS, ça me semble être un bug de bash, mais je me trompe peut-être.)


6
2017-12-19 09:19



Cette question a été mentionnée pour l'OSX, mais cela m'est arrivé dans mon OS Linux. J'ai essayé d'utiliser nvm alias default <version> mais pour chaque nouvelle session de terminal, la version de nœud utilisée a été oubliée. Alors, voici la solution que j'ai trouvée.

assurez-vous de définir un alias par défaut pour la version de noeud, placez le code suivant dans .bashrc, et source .bashrc.

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

lien de solution descriptive


3
2017-11-22 20:21



exécutez ceci après avoir installé n'importe quelle version,

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

Cette commande copie la version de nœud active via nvm dans le répertoire / usr / local / et définit les autorisations pour que tous les utilisateurs puissent y accéder.


2
2017-12-12 09:50



J'ai trouvé une nouvelle façon de faire. En utilisant n  Gérer de manière interactive votre Node.js aide.


2
2018-03-23 07:51