Installer plusieurs versions de node.js concurrentes avec nvm
Je me suis retrouvé dans la situation où la dernière version de node.js
n’était plus adaptée à un projet que j’avais en développement. Il fallait que je revienne quelques versions en arrière afin que mon code TypeScript soit interprété et compilé (vers du ES5 pour fonctionner dans le navigateur). La solution, c’est nvm
.
Installer nvm
⚠️ nvm
est fait pour les systèmes POSIX, c’est-à-dire les dérivés d’UNIX (dont Linux et MacOS). Il existe toutefois une alternative pour windows.
Pour Linux
Il suffit de télécharger ce fichier et de l’exécuter dans un terminal.
Ou bien encore, en une ligne:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
Selon la documentation de nvm
, il peut être nécessaire d’ouvrir un nouveau shell pour que la commande $ nvm
soit disponible.
ℹ️ Par défaut, le script installera nvm
dans votre home directory.
Pour MacOS
L’installation sous MacOS peut se faire évidement de la même façon que précédement sous Linux, mais j’ai trouvé, pour moi, que l’installation avec Homebrew
était encore plus simple (je l’utilise pour d’autres choses, donc il était déjà présent sur mon système).
brew install nvm
💡 Sur les nouvelles machines Apple, équipées de processeurs ARM (le Apple M1 à l’heure où j’écris ces lignes), on peut installer des versions de node.js
compilées pour le processeur, et donc éviter d’utiliser la couche d’émulation de processeur Intel (Rosetta 2), et donc potentiellement avoir un gain notable de performances.
Il suffit de faire attention de bien utiliser la version de homebrew
« spéciale processeur ARM » qu’on trouve ici: /opt/homebrew/bin/brew
.
(Mais vous avez peut-être déjà aliasé brew
pour l’exécutable ARM?)
⚠️ La plupart du temps, l’installation de nvm
va modifier un de vos fichiers de pre-launch du shell, mais dans certains cas, ça peut ne pas fonctionner, particulièrement si vous avez un fichier ~/.bashrc
et que vous êtes passé à zsh
.
Dans ce cas, il suffit d’ajouter ces lignes à votre .zprofile
ou .zshrc
(je préfère .zprofile
qui est utilisé même en dehors d’un shell interactif):
export NVM_DIR="/opt/homebrew/var/homebrew/linked/nvm/"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
ℹ️ Le chemin /opt/homebrew/var/homebrew/linked/nvm/
est valide pour brew
ARM. Pour la version x86, le chemin est le suivant: /usr/local/var/homebrew/linked/nvm
.
Pour Windows
À moins d’utiliser WSL, et donc d’être dans un contexte POSIX, le mieux est d’installer nvm-windows
comme expliqué ici: https://github.com/coreybutler/nvm-windows.
Installer une version de node.js
C’est simple comme bonjour!
nvm install 10 # Installe la v 10 la plus récente
nvm install 8.1.4 # Installe exactement cette version
nvm install node # Installe la toute dernière version stable
Changer de version de node
Il suffit d’utiliser la commande use
:
nvm use 10
nvm use 8.1.4
⚠️ Avec nvm-windows
, la version est changée system-wide, alors que sous les systèmes POSIX, le changement est local à la session de shell.
💡 Pour changer la version par défaut pour les système POSIX, il faut utiliser la commande `alias` comme suit:
nvm alias default 12 # Utilise la dernière 12.x
Ça vous a été utile? Laissez un petit mot en commentaire!