nvm¶
nvm est un gestionnaire de version pour Node.
Installation¶
Avec Homebrew:¶
Installer nvm:
$ brew install nvm
Créer un répertoire où sera installé les différentes versions de Node.
$ mkdir ~/.nvm
Editer .bash_profile pour régler le répertoire NVM_DIR
$ nano ~/.bash_profile
et ajouter les lignes suivantes.
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Recharger le shell pour activer nvm.
$ source ~/.bash_profile
$ echo $NVM_DIR
$ nvm --version
Avec git (méthode officielle):¶
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
Le script d'installation ajoute les lignes suivantes à votre profil (~/.bash_profile
, ~/.zshrc
, ~/.profile
, or ~/.bashrc
).
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Mettre à jour:¶
Relancer le script d'installation
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
Utilisation:¶
Installer NodeJS.
# la dernière version 8
$ nvm install 8
# la version 8.9.4
$ nvm install 8.9.4
# la dernière version 6
$ nvm install 6
# la dernière version LTS (v16)
$ nvm install --lts=gallium
# la dernière version LTS (v18)
$ nvm install --lts=hydrogen
Mettre à jour NodeJS et réinstaller les paquets.
Latest version:
nvm install node --reinstall-packages-from=node
# nvm install node && nvm reinstall-packages $(nvm current | sed 's/^.//')
Stable (LTS) version:
nvm install lts/* --reinstall-packages-from=node
# nvm install --lts=erbium && nvm reinstall-packages $(nvm current | sed 's/^.//')
# nvm install --lts=erbium && nvm reinstall-packages 12.18.3
nvm install --lts=hydrogen --reinstall-packages-from=18.17.0
Liste des versions de Node installées:
$ nvm ls
# ou
$nvm list
-> v8.11.4
v10.9.0
default -> 8 (-> v8.11.4)
node -> stable (-> v10.9.0) (default)
stable -> 10.9 (-> v10.9.0) (default)
iojs -> N/A (default)
lts/* -> lts/carbon (-> v8.11.4)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.14.4 (-> N/A)
lts/carbon -> v8.11.4
Liste des versions de Node installables:
$ nvm ls-remote
v0.1.14
v0.1.15
.../...
v12.12.0
v12.13.0 (LTS: Erbium)
-> v12.13.1 (Latest LTS: Erbium)
v13.0.0
v13.0.1
v13.1.0
v13.2.0
Versions téléchargées:
$ cd $NVM_DIR
- OR -
$ cd ~/.nvm
$ ls versions/node
v10.9.0 v8.11.4
Version en usage:
$ nvm current
v16.17.1
$ node -v
v16.17.1
Changer de version:
$ nvm use 10.9.0
Now using node v10.9.0 (npm v6.2.0)
$ nvm use 10
Now using node v10.9.0 (npm v6.2.0)
$ node -v
v10.9.0
$ nvm use 8.11.4
Now using node v8.11.4 (npm v5.6.0)
$ node -v
v8.11.4
$ nvm use --lts
Now using node v8.11.4 (npm v5.6.0)
# Utilise la dernière version LTS
$ nvm use --lts=erbium
Now using node v12.20.0 (npm v6.14.8)
# Utilise la dernière version LTS=erbium
Alias:
$ nvm alias maintenance 16.17.0
maintenance -> 16.17.0 (-> v16.17.0)
$ nvm use maintenance
Now using node v16.17.0 (npm v8.19.2)
$ nvm unalias maintenance
Deleted alias maintenance - restore it with `nvm alias "maintenance" "16.17.0"`
Changer la version par défaut (résiste à un changement de fenêtre du terminal):
$ nvm alias default 10.15.0
default -> 10.15.0 (-> v10.15.0)
# Dernière version de node par défaut
$ nvm alias default node
default -> node (-> v14.15.0)
Réinstaller les paquets d'une ancienne version après une mise-à jour:
$ nvm current
v8.11.4
$ nvm install --lts=dubnium
Now using node v10.15.0 (npm v6.4.1)
$ nvm reinstall-packages 8
# update 12.13.1 depuis 12.13.0
$ nvm reinstall-packages 12.13.0
Désinstaller une version de Node:
$ nvm uninstall 10.16.2
Uninstalled node v10.16.2
$ nvm uninstall --lts=carbon
Uninstalled node v8.17.0
Les paquets sont installés dans:
bruno@silverbook: ~/.nvm/versions/node/v10.16.3/lib/node_modules $ ls
ezshare npm
bruno@silverbook: ~/.nvm/versions/node/v10.16.2/lib/node_modules $ ls
npm
Current:
https://medium.com/@danielzen/using-nvm-with-webstorm-or-other-ide-d7d374a84eb1
$ export NVM_SYMLINK_CURRENT=true
# choisir le dernier lts
$ nvm use --lts
Now using node v14.15.1 (npm v6.14.9)
$ ls -ld $NVM_DIR/current
lrwxr-xr-x 1 bruno staff 40 Nov 30 15:26 /Users/bruno/.nvm/current -> /Users/bruno/.nvm/versions/node/v14.15.1
# ~/.nvm/current/bin/node comme node par défaut
~/.nvm/current/bin tags/v0.37.2
❯ ls
total 81296
lrwxr-xr-x 1 bruno staff 36 Dec 21 12:05 ezshare -> ../lib/node_modules/ezshare/index.js
lrwxr-xr-x 1 bruno staff 34 Dec 26 08:47 joplin -> ../lib/node_modules/joplin/main.js
lrwxr-xr-x 1 bruno staff 39 Dec 21 12:05 ng -> ../lib/node_modules/@angular/cli/bin/ng
-rwxr-xr-x 1 bruno staff 73884800 Dec 17 20:17 node
lrwxr-xr-x 1 bruno staff 38 Dec 21 13:52 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxr-xr-x 1 bruno staff 38 Dec 21 13:52 npx -> ../lib/node_modules/npm/bin/npx-cli.js
lrwxr-xr-x 1 bruno staff 44 Dec 21 12:05 thumbsup -> ../lib/node_modules/thumbsup/bin/thumbsup.js
lrwxr-xr-x 1 bruno staff 44 Dec 21 12:05 workbox -> ../lib/node_modules/workbox-cli/build/bin.js
Erreur:¶
# A l'ouverture d'une fenêtre bash
N/A: version "N/A -> N/A" is not yet installed.
You need to run "nvm install N/A" to install it before using it.
Entrer:
$ nvm alias default 12
Desinstaller nvm:¶
- Désactiver nvm
$ nvm deactivate
- Désinstaller nvm
$ nvm unload
- Nettoyer .zshrc ou .bashrc
# Supprimer les lignes:
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