Maison > Article > interface Web > Le guide ultime des gestionnaires de versions Node.js : NVM, NVS, fnm, Volta et asdf | Partie 1
Hé ! Si vous avez déjà développé avec Node.js, vous comprenez que bien souvent pour les projets, il est nécessaire d'utiliser différentes versions. Il est probable qu'un projet fonctionnerait sur la version 10, un autre sur la version 14, et qu'un nouveau projet nécessiterait la dernière version, disons 20. Parallèlement aux nouvelles fonctionnalités de chaque nouvelle version, un ensemble de nouveaux défis émergent. Il s'agit de la compatibilité avec les bibliothèques et les frameworks, des tests de nouvelles fonctionnalités et de la stabilité des projets existants.
J'ai moi-même été confronté à ce problème lorsque je travaillais sur plusieurs projets en même temps. Ce qui semblait être une tâche très simple – l'installation de Node.js – s'est transformé en chaos lorsque chaque projet nécessitait sa version. Dans cet article, je vais vous expliquer comment j'ai résolu ce problème à l'aide des outils de gestion de versions Node.js tels que NVM, NVS, fnm, Volta et asdf. Je vais décrire leur fonctionnement, énumérer les avantages et les inconvénients et vous faire part de mon expérience personnelle afin de vous aider à choisir le meilleur gestionnaire de versions de nœuds pour vos besoins.
Node.js lui-même se développe rapidement, tout comme son écosystème d'outils. Les nouvelles bibliothèques, frameworks et versions nécessitent une grande flexibilité dans l'utilisation des différentes versions de Node.js. Certains frameworks de vues peuvent n'être compatibles qu'avec des versions particulières de Node.js LTS vers lesquelles il faudra basculer en fonction du projet en cours de développement. Basculer entre différentes versions de Node.js permettra d'éviter les problèmes de compatibilité et d'assurer le bon fonctionnement du code.
Considérez que vous travaillez sur un ancien projet, qui dépend d'une version spécifique de la bibliothèque. Vous exécutez en même temps un nouveau projet en fonction de la dernière version de Node.js car il utilise les fonctionnalités disponibles uniquement dans la version récente. Les nouvelles versions de Node.js peuvent inclure des fonctions incompatibles avec les versions de ces bibliothèques, ce qui entraînera des erreurs de performances ou une instabilité des applications.
Un jour, je me suis retrouvé dans une situation difficile où je devais installer manuellement différentes versions de Node.js, travailler avec cela, puis réinstaller une autre version, et ainsi de suite. Croyez-moi, c'était un cauchemar. Et puis, je me suis rendu compte que sans un outil utilitaire de gestion de versions de nœuds, je ne pouvais rien faire.
Le développement de logiciels consiste à tester et à mettre en œuvre en continu de nouvelles fonctionnalités. Chaque nouvelle version de Node.js expose les développeurs à des fonctionnalités supplémentaires de langage et de plate-forme, telles qu'une prise en charge améliorée de la programmation asynchrone, des améliorations du système de modules et de nouvelles API. Ces fonctionnalités seraient ensuite testées sur des projets réels pour déterminer leur efficacité et s'il fallait les implémenter dans l'application principale.
Mais que se passe-t-il si votre projet actuel fonctionne de manière stable sous une ancienne version de Node.js et qu'il risque de tomber en panne après la mise à niveau de Node.js ?
Cela impliquait souvent de vérifier les nouvelles fonctionnalités dans la branche master ou une copie du projet en utilisant la nouvelle version de Node.js. Heureusement, les outils de gestion des versions m'ont permis de basculer entre différentes versions sans interruption dans la branche master.
La stabilité et la sécurité sont les facteurs majeurs de tout projet. Dans les anciennes versions de Node.js, certains bugs peuvent être présents, qui sont corrigés avec les nouvelles versions. La mise à niveau vers une version récente est assez risquée si une application dépend des anciennes bibliothèques qui prennent en charge les mises à niveau des nouvelles versions de la plate-forme.
Le contrôle de version de Node.js vous permet de mettre à niveau en toute sécurité la version de la plateforme tout en conservant la possibilité de revenir en arrière en cas de problème, aidant ainsi les développeurs à maintenir leur application stable et à l'abri des vulnérabilités.
Si vous êtes un nouveau venu sur Node.js, vous l'avez probablement téléchargé depuis son site officiel et l'avez installé. C'est le moyen le plus simple et idéal lorsque vous n'avez besoin que d'une seule version de Node.js. Vous téléchargez le programme d'installation, suivez les instructions et voilà : Node.js est sur votre ordinateur.
Mais imaginez que vous travaillez avec plusieurs projets et que tous nécessitent des versions spécifiques de Node.js. Par exemple, vous avez un ancien projet sur Node.js 10 et un nouveau sur Node.js 20. La réinstallation constante de Node.js prend trop de temps et n'est tout simplement pas pratique.
Il existe de nombreux outils pour gérer les versions de Node.js. Dans cet article, je vais aborder cinq options populaires : NVM (Node Version Manager), NVS (Node Version Switcher), fnm ou Fast Node Manager, Volta et asdf. Tous ces éléments sont livrés avec leurs méthodes et fonctionnalités pour gérer les versions, qui peuvent être applicables à diverses tâches et équipes.
Ces gestionnaires de versions automatiseront le processus de gestion, géreront la cohérence des versions et éviteront les problèmes de compatibilité, vous aidant ainsi à choisir l'outil adapté à vos besoins.
Lorsque vous commencez à travailler en équipe, la gestion des versions devient bien plus importante. Chaque développeur peut posséder sa version de Node.js, ce qui peut devenir très problématique à différentes étapes de développement et de déploiement, car différents bogues peuvent survenir. Dans les grands projets et équipes où l'automatisation joue un rôle important, de tels outils de gestion de versions Node.js peuvent être intégrés aux processus CI/CD.
Des outils tels que NVM peuvent être intégrés aux processus CI/CD, permettant à chaque build d'utiliser la version requise de Node.js sans intervention manuelle, garantissant ainsi que chaque membre de l'équipe utilise la bonne version de Node.js pour ses tâches. Cela permet de maintenir la stabilité et la cohérence dans différents environnements, tels que l'environnement de développement, les tests et la production.
Maintenant, les différents outils gérant différentes versions de Node.js ont leurs avantages et leurs inconvénients, et je vais essayer d'expliquer à quelle situation chaque outil convient le mieux.
NVM est l'abréviation de Node Version Manager. C'est l'un des gestionnaires de versions Node.js les plus anciens et toujours très populaires. NVM a été créé par Tim Caswell en 2010 et est toujours activement maintenu.
NVM télécharge chaque version de Node.js dans son propre répertoire autonome à l'adresse ~/.nvm/versions/node/. Lorsque vous passez d'une version à l'autre à l'aide de nvm, il met à jour votre variable d'environnement $PATH pour qu'elle pointe vers le répertoire approprié.
Installation sur macOS et Linux :
Pour installer NVM sur macOS et Linux, suivez ces étapes :
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
ou
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Cela téléchargera et exécutera le script d'installation pour NVM à partir du référentiel officiel NVM GitHub, et le NVM sera installé sur votre système. Une fois installé, vous pouvez vérifier que NVM a été installé à l'aide de la commande :
nvm — version
Si tout s'est bien passé, vous devriez voir la version NVM.
Installation pour Windows :
Pendant le processus d'installation, il configurera automatiquement les configurations NVM dans votre profil. Si vous utilisez zsh, ce serait ~/.zshrc ; ou si vous utilisez bash, ce serait ~/.bashrc, ~/.bash_profile ou un autre profil.
Si cela ne se produit pas automatiquement, ajoutez vous-même la configuration NVM au fichier de profil :
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"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!