Hey! If you ever developed with Node.js, you understand that quite often for projects, there’s a need to use different versions. Probably one project would work on version 10, another on version 14, and a new one requires the latest, say 20. Along with new features on each new release, a set of new challenges emerge. These are compatibility with libraries and frameworks, tests of new functionality, and stability for existing projects.
I faced this problem myself when I was working on several projects at one time. What seemed to be a very simple task — installation of Node.js — turned into chaos when each project required its version. In this article, I will tell you how I solved this problem using Node.js version management tools like NVM, NVS, fnm, Volta, and asdf. I’ll be describing how they work, listing pros and cons, and giving you my personal experience in order to help you choose the best node version manager for your needs.
Node.js itself is rapidly developing, and so is its tooling ecosystem. New libraries, frameworks, and versions require a great deal of flexibility in using different Node.js versions. Some view frameworks may only be compatible with particular Node.js LTS versions that one would have to switch to according to the project being developed. Switching between different Node.js versions will help avoid compatibility problems and keep the code running smoothly.
Consider that you work on some old project, which depends on a specific version of the library. You at the same time run some new project depending on the latest version of Node.js since it uses the features available only within the recent version. New versions of Node.js may include functions incompatible with versions of these libraries, and that will lead to application performance errors or instability.
One day, I got into such a predicament where I needed to install different versions of Node.js manually, work with that, then reinstall another version, and so on and so forth. Believe me, that was a nightmare. And then, it dawned on my mind that without a node version manager utility tool, I couldn’t do anything.
Software development is all about continuous testing and implementation of new features. Each new version of Node.js exposes developers to additional language and platform capabilities, such as enhanced asynchronous programming support, improvements in the module system, and new APIs. Such features would then be tested on real projects to ascertain how effective they were and whether to implement them into the main application.
But what if your current project is running stable under an older version of Node.js, and this might get broken after upgrading Node.js?
That often meant checking new features in the master branch, or a copy of the project using the new Node.js version. Luckily, tooling for version management allowed me to switch between different versions with no brokenness in the master branch.
Stability and security are the major factors for any project. In older versions of Node.js, some bugs may be held, which get fixed with new releases. Upgrading to a recent version is pretty risky if an application depends on the older libraries that support new platform version upgrades.
Versioning Node.js allows you to safely upgrade the platform version while retaining the possibility to roll back in the case of problems, thus helping developers to keep their application stable and safe from vulnerabilities.
If you are a newcomer to Node.js, you’ve probably downloaded it from its official website and installed it. That is the most straightforward way that is great when you need only one version of Node.js. You download the installer, follow the instructions, and voilà — Node.js is on your computer.
But imagine that you work with several projects and all of them require some specific versions of Node.js. For example, you have some old project on Node.js 10 and some new one on Node.js 20. Constant reinstalling of Node.js is too time-consuming and just inconvenient.
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"
以上是Node.js 版本管理器终极指南:NVM、NVS、fnm、Volta 和 asdf |第 1 部分的详细内容。更多信息请关注PHP中文网其他相关文章!