# nvm



nvm est un gestionnaire de version pour Node.



### Installation

#### Avec Homebrew:

Installer nvm:

```bash
$ brew install nvm
```

Créer un répertoire où sera installé les différentes versions de Node.

```bash
$ mkdir ~/.nvm
```

Editer .bash_profile pour régler le répertoire NVM_DIR

```bash
$ nano ~/.bash_profile
```

et ajouter les lignes suivantes.

```bash
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
```

Recharger le shell pour activer nvm.

```bash
$ source ~/.bash_profile

$ echo $NVM_DIR
$ nvm --version
```



#### Avec git (méthode officielle):

```bash
$ 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`).

```bash
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 

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





### Utilisation:

Installer NodeJS.

```bash
# 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 (v10)
$ nvm install --lts=dubnium
```

Mettre à jour NodeJS et réinstaller les paquets.

```bash
Latest version: 
nvm install node --reinstall-packages-from=node
# nvm install node && nvm reinstall-packages $(nvm current)

Stable (LTS) version: 
nvm install lts/* --reinstall-packages-from=node
# nvm install --lts=erbium && nvm reinstall-packages $(nvm current)
# nvm install --lts=erbium && nvm reinstall-packages 12.13.1
```

Liste des versions de Node installées:

```bash
$ 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:

```bash
$ 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:

```bash
$ cd $NVM_DIR
- OR -
$ cd ~/.nvm
$ ls versions/node
v10.9.0	v8.11.4
```

Version en usage:

```bash
$ node -v
v8.11.4
```

Changer de version:

```bash
$ 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
```

```bash
$ nvm use 8.11.4
Now using node v8.11.4 (npm v5.6.0)
$ node -v
v8.11.4
```

```bash
$ nvm use --lts
Now using node v8.11.4 (npm v5.6.0)
```

Changer la version par défaut (résiste à un changement de fenêtre du terminal):

```bash
$ nvm alias default 10.15.0
default -> 10.15.0 (-> v10.15.0)
```

Réinstaller les paquets d'une ancienne version après une mise-à jour:

```bash
$ 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:

```bash
$ nvm uninstall 10.16.2
Uninstalled node v10.16.2
```

Les paquets sont installés dans:

```bash
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
```



### Erreur:

```bash
# 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:

```bash
$ nvm alias default 12
```

