web-dev-qa-db-fra.com

nvm continue à "oublier" 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 nœud et affiche la valeur par défaut:

_$ nvm ls_:

_         .nvm
     v0.11.12
     v0.11.13
_

Je dois continuer à frapper _nvm use v.0.11.13_ à chaque session:

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

J'ai essayé à la fois l'installation brew, ainsi que le script d'installation officiel.

Mon .profile pour la version brassée:

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

Un indice sur ce que je fais mal?

496
frhd

Essayez nvm alias default. Par exemple:

$ nvm alias default 0.12.7

Ceci définit la version de noeud par défaut dans votre shell. Vérifiez ensuite que le changement persiste en fermant la fenêtre du shell, ouvrez-en une nouvelle, puis: node --version

1082
dylants

Alias ​​sur node lui-même pour éviter de mettre à jour l'alias par défaut avec les mises à jour ultérieures de la version du nœud.

nvm alias default node
74
Tarun

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 lister les versions installées:

nvm list

À partir de v6.2.0, cela 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)
39
ohho

nvm fait son travail en changeant la variable PATH, vous devez donc vous assurer de ne pas modifier votre PATH en quelque chose d'autre après avoir recherché 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 a amené ma session à trouver le nœud système avant le nœud nvm.

23
Jeff Mikels

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

Si l'autre programme modifiait la PATH après l'initialisation de nvm, les modifications de nvm PATH seraient oubliées et nous obtiendrions le noeud système sur notre PATH (ou pas de noeud).

La solution a été de déplacer la configuration de 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. Cela me semble être un bug de bash, mais je peux me tromper.)

20
joeytwiddle

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

  1. Désinstaller complètement nvm en utilisant homebrew: brew uninstall nvm
  2. Réinstallez brew install nvm
  3. Dans Terminal, suivez les étapes ci-dessous (elles sont également répertoriées 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 s'ajoutent à $ HOME/.bashrc, $ HOME/.zshrc ou au fichier de configuration équivalent de votre shell. répertorié sur une installation NVM en utilisant homebrew)

9
Joe

Si vous avez tout essayé toujours pas de chance, vous pouvez essayer ceci: _

1 -> Désinstaller NVM

rm -rf ~/.nvm

2 -> Supprimer les dépendances npm en suivant this

3 -> Installer NVM

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

4 -> Set ~/.bash_profile configuration

Exécuter Sudo nano ~/.bash_profile

Copier et coller après cela

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 enregistrer les modifications

6 -> Exécuter . ~/.bash_profile

7 -> Vous devez maintenant avoir nvm installé sur votre machine. Pour installer le noeud, exécutez nvm install v7.8.0, ce sera la version de noeud par défaut ou vous pouvez installer n'importe quelle version de noeud.

6
Gabbar

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

assurez-vous de définir un alias par défaut pour la version du noeud , insérez 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 solution descriptive

4
souparno majumder

lancez-le 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, quelle que soit la version du noeud active via nvm, dans le répertoire/usr/local/et définit les autorisations pour que tous les utilisateurs puissent y accéder.

2
Mouafa Ahmed

J'ai trouvé un nouveau moyen ici. Utiliser nGérer de manière interactive votre Node.js aide.

2
Harshit Garg

Faire nvm install 10.14, par exemple, va nvm use cette version pour la session Shell en cours, mais pas la définira toujours comme valeur par défaut pour les sessions futures, comme vous le souhaitez. La version du nœud que vous obtenez dans une nouvelle session Shell est déterminée par nvm alias default. De manière confuse, nvm install ne définira l’alias par défaut que s’il n’a pas déjà été défini. Pour obtenir le comportement attendu, procédez comme suit:

nvm alias default ''; nvm install 10.14

Cela garantira que cette version est téléchargée, utilisez-la pour la session en cours et définissez-la comme configuration par défaut pour les sessions futures.

2
Denis Howe

Après une longue période de conflit avec ce problème, j'ai trouvé comment le résoudre. Voici une solution étape par étape au problème:

  • Ouvrez le terminal et installez les outils de développement de ligne de commande:

    xcode-select --install

  • Appuyez sur Entrée

  • Installez la dernière version de NVM:

    cd ~/

  • Appuyez sur Entrée

    git clone https://github.com/creationix/nvm.git .nvm

  • Appuyez sur Entrée
  • Si vous avez déjà créé le dossier .nvm auparavant, le message d'erreur suivant s'affiche:

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

    Sinon, vous verrez le processus de clonage s'exécuter jusqu'à ce qu'il l'ait terminé.

  • Découvrez la dernière version de NVM:

    cd ~/.nvm

  • Appuyez sur Entrée

    git checkout v0.34.0

    Vous obtiendrez une réponse semblable à:

    HEAD is now at 3d9c31d v0.34.0

    La version peut être différente sur différents systèmes.

    ls

  • Appuyez sur Entrée

    . nvm.sh

  • Appuyez sur Entrée

    nvm list

  • Appuyez sur Entrée

    Vous verrez les différentes versions de nœuds installées sur votre ordinateur. Il peut y avoir des erreurs, ne leur faites pas attention.

    nvm ls-remote | tail -n9

  • Appuyez sur Entrée

    nvm list

  • Ouvrez bash avec vim:

    vim ~/.bash_profile

  • À l'intérieur de l'éditeur vim, appuyez sur: i pour entrer INSERT mode et commencez une nouvelle ligne. Si vous avez des erreurs lors de la modification, appuyez sur la touche ESC puis sur :q! pour quitter sans sauvegarder.

    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

  • Appuyez sur la touche ESC lorsque vous avez terminé d’éditer le fichier (le mode INSERT disparaîtra).

  • Appuyez sur :wq pour enregistrer le fichier.
  • Appuyez sur Entrée

    nvm ls-remote | tail -n9

  • Appuyez sur Entrée et installez la version la plus récente de NVM présentée:

    nvm install 12.6.0

  • Une fois le processus terminé, vous verrez: Now using node v12.6.0 (npm v6.9.0)

  • Vous pouvez vérifier si l'installation réussit en appuyant sur:

    node -v ou npm -v, cela devrait vous montre les versions de nvm et npm installées sur votre système.

Basé sur: Comment installer la dernière version de Node Version Manager NVM et installer Node et NPM sous macOS Mac OS X

0
Eden Sharvit

Si vous avez aussi SDKMAN ...

SDKMAN était en conflit avec ma NVM. Si vous êtes au bout du rouleau et que vous n'arrivez toujours pas à comprendre, je l'ai corrigé en ignorant le message "CECI DOIT ÊTRE AT LA FIN DU FICHIER ..." de SDKMAN et en mettant les lignes NVM après.

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

lorsque nous utilisons la commande ci-dessus, ne met à jour que la version du noeud, mais la npm utilise toujours l'ancienne version.

Voici une autre solution pour mettre à jour les node et npm, dans mon cas, je veux utiliser le noeud 8.9.4 et j'ai utilisé la commande ci-dessous.

$ nvm use default 8.9.4

Et la commande retourne la sortie.

Maintenant, en utilisant le noeud v8.9.4 (npm v5.6.0)

0
Anish Agarwal