Files
mkdocs/docs/macos/node/nvm.md
2023-11-14 20:35:51 +01:00

330 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# nvm
[nvm](https://github.com/nvm-sh/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/nvm-sh/nvm/v0.37.2/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 (v16)
$ nvm install --lts=gallium
# la dernière version LTS (v18)
$ nvm install --lts=hydrogen
```
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 | sed 's/^.//')
Stable (LTS) version:
nvm install lts/* --reinstall-packages-from=node
# nvm install --lts=erbium && nvm reinstall-packages $(nvm current | sed 's/^.//')
# nvm install --lts=erbium && nvm reinstall-packages 12.18.3
nvm install --lts=hydrogen --reinstall-packages-from=18.17.0
```
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
$ nvm current
v16.17.1
$ node -v
v16.17.1
```
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)
# Utilise la dernière version LTS
$ nvm use --lts=erbium
Now using node v12.20.0 (npm v6.14.8)
# Utilise la dernière version LTS=erbium
```
Alias:
```bash
$ nvm alias maintenance 16.17.0
maintenance -> 16.17.0 (-> v16.17.0)
```
```bash
$ nvm use maintenance
Now using node v16.17.0 (npm v8.19.2)
```
```bash
$ nvm unalias maintenance
Deleted alias maintenance - restore it with `nvm alias "maintenance" "16.17.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)
# Dernière version de node par défaut
$ nvm alias default node
default -> node (-> v14.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
$ nvm uninstall --lts=carbon
Uninstalled node v8.17.0
```
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
```
Current:
https://medium.com/@danielzen/using-nvm-with-webstorm-or-other-ide-d7d374a84eb1
```bash
$ export NVM_SYMLINK_CURRENT=true
# choisir le dernier lts
$ nvm use --lts
Now using node v14.15.1 (npm v6.14.9)
$ ls -ld $NVM_DIR/current
lrwxr-xr-x 1 bruno staff 40 Nov 30 15:26 /Users/bruno/.nvm/current -> /Users/bruno/.nvm/versions/node/v14.15.1
# ~/.nvm/current/bin/node comme node par défaut
~/.nvm/current/bin tags/v0.37.2
ls
total 81296
lrwxr-xr-x 1 bruno staff 36 Dec 21 12:05 ezshare -> ../lib/node_modules/ezshare/index.js
lrwxr-xr-x 1 bruno staff 34 Dec 26 08:47 joplin -> ../lib/node_modules/joplin/main.js
lrwxr-xr-x 1 bruno staff 39 Dec 21 12:05 ng -> ../lib/node_modules/@angular/cli/bin/ng
-rwxr-xr-x 1 bruno staff 73884800 Dec 17 20:17 node
lrwxr-xr-x 1 bruno staff 38 Dec 21 13:52 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxr-xr-x 1 bruno staff 38 Dec 21 13:52 npx -> ../lib/node_modules/npm/bin/npx-cli.js
lrwxr-xr-x 1 bruno staff 44 Dec 21 12:05 thumbsup -> ../lib/node_modules/thumbsup/bin/thumbsup.js
lrwxr-xr-x 1 bruno staff 44 Dec 21 12:05 workbox -> ../lib/node_modules/workbox-cli/build/bin.js
```
### 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
```
### Desinstaller nvm:
1. Désactiver nvm
```bash
$ nvm deactivate
```
2. Désinstaller nvm
```bash
$ nvm unload
```
3. Nettoyer .zshrc ou .bashrc
```bash
# Supprimer les lignes:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm
```