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
_
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
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
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)
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.
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.)
Les solutions les mieux notées ne semblent pas fonctionner pour moi. Ma solution est ci-dessous:
brew uninstall nvm
brew install nvm
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)
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.
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
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.
J'ai trouvé un nouveau moyen ici. Utiliser n
Gérer de manière interactive votre Node.js aide.
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.
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
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).
: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.
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
$ 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)