Aller au contenu

Node.js : gérer plusieurs versions (nvm)

nvm (Node Version Manager) installe plusieurs versions de Node.js dans le dossier personnel et permet de passer de l’une à l’autre. Il est adapté au développement ; pour un service système, voir Mise en production.

Remplacer la version dans l’URL par la dernière publiée sur github.com/nvm-sh/nvm :

Fenêtre de terminal
sudo apt install curl
curl -fsSL -o nvm_install.sh https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh
less nvm_install.sh # lecture avant exécution
bash nvm_install.sh

Rouvrir le terminal (ou source ~/.bashrc), puis vérifier :

Fenêtre de terminal
command -v nvm # affiche « nvm »
nvm --version
Fenêtre de terminal
nvm ls-remote --lts # versions LTS disponibles
nvm install --lts # dernière LTS
nvm install 24 # dernière version 24.x
nvm install 22.12.0 # version précise
Fenêtre de terminal
nvm ls # versions installées
nvm use 24 # active la version 24 dans ce terminal
node --version
nvm alias default 24 # version utilisée par défaut à l'ouverture d'un terminal
nvm current # version active

Placer à la racine du projet un fichier .nvmrc contenant la version :

Fenêtre de terminal
echo "24" > .nvmrc
nvm use # lit .nvmrc
nvm install # installe la version indiquée si nécessaire

Le fichier .nvmrc se versionne avec le projet : toute l’équipe utilise la même version.

Commande Rôle
nvm ls Liste les versions installées
nvm install --lts Installe la dernière LTS
nvm use <version> Active une version dans le terminal courant
nvm alias default <version> Définit la version par défaut
nvm uninstall <version> Supprime une version
nvm exec 22 node app.js Exécute une commande avec une version précise
nvm install --lts --reinstall-packages-from=current Installe la LTS en gardant les paquets globaux
nvm which 24 Chemin de l’exécutable d’une version

Relancer le script d’installation avec la nouvelle version de nvm.

Symptôme Piste
nvm: command not found Rouvrir le terminal, ou vérifier que ~/.bashrc contient les lignes ajoutées par le script
node n’est pas celui de nvm Un Node système est prioritaire : which -a node ; nvm use remet nvm en tête du PATH
Erreur de téléchargement Vérifier la connexion et l’accès à nodejs.org