nvm ou comment travailler avec plusieurs versions de Node.js
Tags: nvm, node, javascript, french
Published: 2021-01-07 08:55:35

Aujourd'hui, il est assez commun de devoir installer **Node.js** pour faire fonctionner un projet.

L'installation étant assez simple, la modification et/ou la mise à jour de la version de **Node.js** installée sur votre système l'est beaucoup moins

Dans cet article on va parler d'une solution qui va nous permettre de changer simplement de version **Node.js** à la volée : **nvm**

## Qu'est-ce que **nvm** ?

L'acronyme de _nvm_ signifie : _Node Version Manager_.

Comment on l'a dit précédemment, cet outil va nous permettre de manager plusieurs version de **Node.js**.

Disponible uniquement sur environnement **Unix** de base, un _fork_ a été réalisé pour _Windows_.

## Installation **Unix**

```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
```

Vous pouvez également vous référer au [readme](https://github.com/nvm-sh/nvm#install--update-script) pour des informations plus complètes sur l'installation **Unix**

## Installation **Windows**

Pour **Windows**, il faut se tourner vers le [fork](https://github.com/coreybutler/nvm-windows/releases) et installer la dernière _release_ en date.

Néanmoins, même si c'est fonctionnel, le projet n'a pas été mis à jour depuis Août 2018.

## Exemples d'utilisation

Voici un exemple d'installation d'une version de **Node.js** :

```bash
nvm install 14.14.0
```

En changeant le numéro de version, vous pourrez installer la version que vous souhaitez.

Pour connaitre la liste des versions de **Node.js** installées :

```bash
nvm list
    14.14.0
   *14.11.0 (Currently using 64-bit executable)
```

Enfin, voici la commande pour pouvoir utiliser une version spécifique installée

```bash
nvm use 14.14.0
```

Vos différentes variables d'environnement vont changer et pointer sur votre version de **Node.js** voulue.

Et... c'est tout !

## Des alternatives existent

Même si ces alternatives restent confidentielles à côté de **nvm**, elles ne déméritent pas d'exister

- **n** : la différence notable avec **nvm** est l'installation des packages globales. Dans **nvm**, les packages globales sont séparés par version de **Node.js** ce qui n'est pas le cas avec **n**
- **nvs** : propose un interpréteur plus évolué et la possibilité de choisir également [ChakraCore](https://github.com/microsoft/ChakraCore).

> Depuis l'annonce de **Microsoft** de passer sur le même moteur de rendu que **Chromium** (le _moteur V8_, celui sur lequel est basé **Node.js**), **Microsoft** ne proposera plus de patch de sécurité sur **ChakraCore** à partir du 9 Mars 2021

## One more thing

L'un des points fort de l'utilisation de **nvm** quand vous êtes sur un environnement **Unix** est de pouvoir placer un `.nvmrc` à la racine de votre projet.
**nvm** changera automatiquement de version quand vous naviguerez dans votre dossier de projet !

### Conclusion

Pour du multi-projet ou pour votre poste de travail, l'utilisation de **nvm** va vous permettre de pérenniser vos versions de **Node.js**.
A utiliser sans modération !

______

Merci d'avoir lu cet article !
Il a été posté initialement sur le [blog](https://www.younup.fr/blog) de @younup_it :
https://www.younup.fr/blog/nvm-ou-comment-travailler-avec-plusieurs-versions-de-node-js