Skip to main content

Maîtrisez la gestion des versions de Node.js et des registres npm comme un pro

Écrit par

Juan Picado

Node How even quick async functions can block the Event Loop starve tumb

28 août 2019

0 minutes de lecture

Dans la continuité de notre guide des 10 bonnes pratiques de sécurité npm publié plus tôt cette année, j’aimerais expliquer comment passer plus facilement d’une version de Node.js à une autre et d’un registre npm à un autre dans un environnement de développement.

Gestionnaire de versions Node.js

Lorsque vous développez des applications Node.js, vous pouvez avoir besoin d’installer plusieurs versions de Node.js pour effectuer vos tâches quotidiennes. Par exemple, vous devrez peut-être corriger un bug en production ou passer d’un projet à un autre. Le faire manuellement à chaque fois peut demander beaucoup d’efforts. Heureusement, il existe une meilleure solution.

Node Version Manager (nvm) est un outil qui permet de passer d’une version de Node.js à une autre et de réduire les efforts nécessaires pour reproduire des bugs de production dans des environnements de développement.

L’installation par défaut est uniquement prise en charge sur les environnements macOS et Linux. Si vous utilisez Windows, consultez nvm-windows, qui devrait répondre à vos besoins.

À l’aide de l’interface en ligne de commande, vous pouvez installer n’importe quelle version de Node.js en exécutant la commande suivante :


nvm install  8.9.4
nvm install node   # nvm install the latest release
nvm install --lts  # nvm install the latest LTS release

C’était facile ! Voyons maintenant quelques scénarios courants dans lesquels NVM peut vous aider :

  • Il arrive que certains membres d’une équipe travaillent avec une version de Node.js différente de celle des autres. C’est une erreur courante qui peut vous causer des problèmes, par exemple en fusionnant du code qui n’est pas pris en charge par la version de Node.js utilisée par le reste de l’équipe. Pour imposer la version que tous les membres doivent utiliser, l’équipe peut mettre en place le fichier `.nvmrc`. Par exemple :

    $ echo "10" > ~/.nvmrc

    Une fois le fichier installé, lorsqu’un membre de l’équipe exécute nvm install, la version qui y est indiquée est toujours utilisée par défaut. Cela empêche les membres de l’équipe de contribuer s’ils utilisent une autre version. Vous évitez ainsi, par exemple, de déployer des fonctionnalités Node.js incompatibles ou d’utiliser une syntaxe susceptible de faire planter votre application.

  • Vous devez reproduire un bug avec une version de Node.js antérieure ou ultérieure à celle que vous avez installée ? Sans NVM, gérer plusieurs instances de versions de npm installées globalement est compliqué en raison des installations manuelles. Avec NVM, il vous suffit d’exécuter une autre commande `install` pour lancer plusieurs instances en parallèle avec différentes versions. Et voilà ! Voir l’exemple ci-dessous.

Lorsque plusieurs instances de Node.js sont installées, chacune avec plusieurs modules npm globaux, vous devez réinstaller tous ces modules à chaque changement de version de Node.js.

Voici une solution rapide :

$ nvm install 10 --reinstall-packages-from=8

Gestionnaire de registres npm

NPM Registry Manager est un autre utilitaire pratique si vous utilisez plusieurs registres, ce qui est courant en entreprise ou si vous utilisez un outil comme verdaccio pour votre usage personnel sur un registre privé local. Depuis le lancement du registre de paquets de GitHub, cet outil est encore plus utile et courant.

NRM prend en charge plusieurs registres prêts à l’emploi, notamment :

$ nrm use cnpm

Pour découvrir d’autres conseils pour améliorer votre productivité en matière de sécurité npm, consultez notre aide-mémoire Guide des 10 bonnes pratiques de sécurité npm.

Restez en sécurité !

Publié dans:

Lire la suite

Live Stream

Les agents de remédiation démystifiés : pourquoi corriger vaut mieux que détecter

Découvrez comment l’agent de remédiation de Snyk utilise les renseignements de sécurité, l’analyse de la cassabilité et la validation pour transformer les vulnérabilités en pull requests prêtes à être fusionnées.

feature insights context
Blog

Dans les coulisses de la compromission de keyv sur npm : malware preinstall, provenance fiable et hooks d’IDE

keyv 6.0.0 et dix versions npm associées ont diffusé un malware à l’installation. Découvrez les versions touchées, les empreintes, les étapes de détection et l’ordre de remédiation recommandé.

feature ai ide dark
Blog

Premiers aperçus d’Evo Agentic AppSec : remédiation agentique et défense contre le code malveillant

Découvrez les premières capacités d’Agentic AppSec de Snyk : un agent de remédiation autonome qui corrige les vulnérabilités et une défense contre le code malveillant qui bloque les packages à risque avant leur mise en production.