Aller au contenu

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:

  1. Désactiver nvm
$ nvm deactivate
  1. Désinstaller nvm
$ nvm unload
  1. 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

Dernière mise à jour: November 9, 2023