Développeur FullStack & Devops

Notes et mémos techniques

NVM Nodejs

nvm (pour Node Version Manager) permet aux développeurs d'installer et d'utiliser plusieurs versions de Nodejs simultanément. Cela permet par exemple d'utiliser 1 version de nodejs spécifique dans chaque projet, et cela peut être facilité via l'usage d'un fichier .nvmrc qui permet de spécifier (la version de nodejs souhaitée) et l'appliquer avec la commande nvm use.

nvm a été conçu à l'origine pour tourner sur des OS Linux et OS X (et donc aussi WSL sous Windows), mais il existe une version NVM Windows.

Installation et mise à jour par wget, et un prérequis à cette installation est d'avoir git :

wget -O- --no-check-certificate wget https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

(en cas d'erreur de certificats utiliser l'argument --no-check-certificate de wget comme indiqué ci-dessus)

Usage de vmc

Installation et choix d'une version

nvm install 17.4.0           # installe la version
nvm use                      # utilise la version sépcifiée dans le fichier .nvmrc
nvm use 17.4                 # utiliser la dernière version parmis les v17.4.x installées```

nvm use node                 # utiliser la dernière version installée de Node
nvm run 10.3.0 app.js        # lance l'application app.js avec la version spécifiée
nvm exec 10.3.0 node app.js  # lance l'application app.js en définissant la version à utiliser dans le shell d'exécution

Alias de versions

nvm permet d'aliaser les versions, c'est à dire créer une sorte de raccourci, et est surtout utilisé pour définir l'alias defaut qui est utilisé par défaut.

nvm alias # liste les alias de versions
nvm alias default 8.11.2 # défini l'alias default sur la version spécifiée

nvm alias default node # défini l'alias default sur la dernière version dispo (LTS ou non)
nvm alias fav 10.3.0 # cré ou redéfini un alias "fav" sur la version spécifiée

nvm use fav
nvm unalias fav

Lister les version de Nodejs

nvm ls              # liste les versions installées en local, les alias, celle par défaut etc
nvm current         # indique la version courante

nvm which current   # indique le PATH de la version courante (ou de la version spécifiée)

nvm ls-remote       # liste les versions disponibles
nvm ls-remote --lts|grep -i latest

Remarques

Installation globale de package npm

Lors d'une installation globale d'un package npm via npm i -g , les fichiers du package installé sont placés dans l'arborescence de la version actuellement sélectionnée nvm current. Ces packages npm ne seront donc plus disponible si on switch de version avec un nvm use.

Remarque : depuis npm 5.3 et l'apparition de npx, il y a encore moins de raison d'installer un quelconque outil en global en dehors des outils comme jest ou prettier dans le cas de leurs utilisation avec VSCode par ex.

Astuce

Les binaires node et npm n'étant pas accessibles globalement (et c'est tout l’intérêt de nvm), il peut toutefois s'avérer utile (comme sur les serveur de recette/prod) d'avoir un accès systèm-wide à ces binaires. Il est alors possible de simplement créer des symlinks pour les rendre dispo dans le PATH (credit):

sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
devops
javascript
nodejs
nvm
devops
rédigé le 30/05/18, mis à jour le 31/01/22 par Behrouze
A proposCheat SheetsOutilsVidéos