Gestion des versions Node.js et NPM avec NVM

Notre précédente traduction sur les nouvelles fonctions de la 15e version de Node.js a été très bien accueillie par les lecteurs de Habr, nous avons donc décidé aujourd'hui de continuer le sujet et de vous dire comment configurer NVM avec la version 15 de Node.js et NPM 7 .


La version 15 de Node.js est sortie le 20 octobre 2020. Il est livré avec npm 7 et de nombreuses nouvelles fonctionnalités. Avez-vous déjà essayé la nouvelle version?



Mais attendez une minute! Node.js 15 et npm 7 contiennent des changements de rupture. La mise à niveau ne nuirait-elle pas aux projets existants?



En théorie, ça peut faire mal!







Heureusement, nous avons NVM (Node Version Manager) pour nous sauver de ce danger. Examinons de plus près cet outil afin de mettre à jour les versions de node.js et npm sans aucun problème.



Installez NVM



nvm



gère les versions node.js et npm. Il est installé pour un utilisateur spécifique et peut être appelé séparément pour chaque shell. nvm



fonctionne avec n'importe quel shell compatible POSIX (sh, dash, ksh, zsh, bash), y compris les plates-formes: unix, macOS et windows WSL.



nvm



peut être installé à l'aide des commandes curl ou wget:



$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
      
      







Script install.sh



clones NVM dépôt dans ~/.nvm



et tente d'ajouter les lignes de source du fragment suivant au fichier de profil souhaité ( ~/.bash_profile



, ~/.zshrc



, ~/.profile



ou ~/.bashrc



).



export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
      
      





Dans ~/.bash_profile



nous pouvons voir que les lignes sont ajoutées:



export NVM_DIR="/Users/fuje/.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 bash_completion
      
      





Utilisation de NVM



Donc, nous avons installé nvm. Nous utilisons maintenant cette commande pour installer la dernière version de node.js:



$ nvm install node
Downloading and installing node v15.4.0...
Downloading https://nodejs.org/dist/v15.4.0/node-v15.4.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v15.4.0 (npm v7.0.15)
      
      





Les données de sortie de l'exemple ci - dessus indique que le NMP 7.0.15



utilisé avec Node.js 15.4.0



. Allons vérifier:



$ node -v
v15.4.0
$ npm -v
7.0.15
      
      





Nous pouvons également spécifier la version requise pour l'installation. Le format sémantique de la version est déterminé par le SemVer :



$ nvm install 10.14.0
Downloading and installing node v10.14.0...
Downloading https://nodejs.org/dist/v10.14.0/node-v10.14.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v10.14.0 (npm v6.4.1)
      
      





Si la version spécifiée était déjà installée, elle n'est pas réinstallée:



$ nvm install 10.14.0
v10.14.0 is already installed.
Now using node v10.14.0 (npm v6.4.1)
      
      





Nous pouvons afficher toutes les versions installées:



$ nvm ls
->     v10.14.0
       v10.15.0
       v10.16.0
       v12.16.0
        v13.9.0
        v15.4.0
         system
default -> 12.16.0 (-> v12.16.0)
node -> stable (-> v15.4.0) (default)
stable -> 15.4 (-> v15.4.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/fermium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.23.0 (-> N/A)
lts/erbium -> v12.20.0 (-> N/A)
lts/fermium -> v14.15.1 (-> N/A)
      
      





Dans les exemples de sortie ci-dessus, le symbole ->



indique que la version actuelle de node.js est 10.14.0



. La flèche représente également les valeurs de default



( 12.16.0



), node



( 15.4.0



) et stable



( 15.4.0



).



nvm use



remplace la version actuelle:



$ nvm use 12.16.0
Now using node v12.16.0 (npm v6.14.8)
$ nvm use 10.16.0
Now using node v10.16.0 (npm v6.14.5)
$ nvm use 13.9.0
Now using node v13.9.0 (npm v6.13.7)
$ nvm use default
Now using node v12.16.0 (npm v6.14.8)
$ nvm use node
Now using node v15.4.0 (npm v7.0.15)
$ nvm use stable
Now using node v15.4.0 (npm v7.0.15)
      
      





Vous vous demandez peut-être comment v10.16.0



utilise-t-il une version ultérieure de npm v13.9.0



. Cette tâche peut être résolue à l'aide des commandes suivantes:



$ nvm use 10.16.0
$ npm install -g npm@6.14.5
      
      





Cette commande vous permet d'obtenir la dernière version npm prise en charge pour la version actuelle de Node.js:



$ nvm install-latest-npm
      
      





nvm use



installe la version correcte pour le shell actuel uniquement. Si vous modifiez le shell, la version nouvellement mise à jour de node.js sera perdue.



Comment rendre persistante une version spécifique de Node.js?



La version par défaut est celle qui est distribuée à tous les shells.



La commande nvm alias



vous permet de définir la version par défaut.



$ nvm alias default 10.16.0
      
      







Pour plus de commodité, vous pouvez créer un fichier .nvmrc



qui accepte le format SemVer, node



ou default



. Après cela nvm use



, nvm install



, nvm exec



, nvm run



et nvm which



utilisera la version spécifiée dans le fichier .nvmrc



, à moins qu'une autre ligne de commande.



$ cat .nvmrc
15.4.0
$ nvm use
Found '/Users/fuje/.nvmrc' with version <15.4.0>
Now using node v15.4.0 (npm v7.0.15)
      
      





Nous pouvons vérifier la version actuelle avec la commande suivante:



$ nvm current
v15.4.0
      
      





ls-remote



affiche toutes les versions disponibles, mais soyez prêt pour une très longue liste.



$ nvm ls-remote
      
      





Notez que le nom de version abrégé raccourcit considérablement la liste entière.



$ nvm ls-remote 15
        v15.0.0
        v15.0.1
        v15.1.0
        v15.2.0
        v15.2.1
        v15.3.0
->      v15.4.0
      
      





nvm which



indique le chemin d'accès à l'exécutable où il a nvm



été installé. Nous avons installé des versions de node.js comme 10.14.0



, 10.15.0



et 10.16.0



. Voici les résultats nvm which



:



$ nvm which 10.14.0
/Users/fuje/.nvm/versions/node/v10.14.0/bin/node
$ nvm which 10.15.0
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.16.0
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
$ nvm which 10.15
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.12
N/A: version "v10.12" is not yet installed.
You need to run "nvm install 10.12" to install it before using it.
$ nvm which 10
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
      
      





La version spécifiée de Node.js peut être utilisée directement pour lancer des applications:



$ nvm run 10.15.0 app.js
      
      





Alternativement, cette commande est exécutée node app.js



avec la variable PATH indiquant la version 10.15.0



.



$ nvm exec 10.15.0 node app.js
      
      





Si vous avez besoin de plus de commandes nvm, exécutez la commande help



:



$ nvm --help
      
      







Mise à niveau NVM



Nous pouvons utiliser nvm



node.js et npm pour mettre à jour. Mais comment puis-je me mettre à jour nvm



?



Essayons!



Avant la mise à jour, nous avons installé nvm



0.34.0



.



Nous mettons à jour vers la version 0.37.2.



$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13527  100 13527    0     0  23046      0 --:--:-- --:--:-- --:--:-- 23083
=> nvm is already installed in /Users/fuje/.nvm, trying to update using git
=> => Compressing and cleaning up git repository
=> nvm source string already in /Users/fuje/.bash_profile
=> bash_completion source string already in /Users/fuje/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:
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 bash_completion
      
      





Comme indiqué dans la sortie, nous devons fermer et rouvrir le terminal afin d'utiliser la nouvelle version:



$ nvm --version
0.37.2
      
      





Par rapport à la version 0.34.0



, la version a 0.37.2



ajouté une fonction nvm set-colors



de sortie vers la console. Affiche les couleurs suivantes par







défaut nvm ls



:







Définissez de nouvelles couleurs:



$ nvm set-colors cgYmW
      
      





nvm ls



affiche la sortie avec de nouvelles couleurs:







Conclusion



nvm



simplifie le contrôle de version node.js et npm. Nous sommes maintenant prêts à passer à node.js 15 et npm 7. J'espère que vous avez trouvé cela utile. D'autres publications de l'auteur peuvent être trouvées ici .



All Articles