Une des meilleures caractéristiques de Node est le gestionnaire de paquets. Il existe de nombreuses façons différentes d’installer et de gérer les paquets Node. Ici, nous allons examiner les avantages et les inconvénients de l’utilisation d’un gestionnaire de paquets ou de l’utilisation de plus d’un gestionnaire de paquets, et certaines des meilleures façons de les utiliser ensemble.
Qu’est-ce qu’un gestionnaire de paquets, vous demandez-vous ? Lisez la suite pour le savoir.
Que sont les gestionnaires de paquets ?
Dans le monde du développement logiciel, les dépendances sont ce dont vous avez besoin pour mener à bien votre projet. Elles sont comme les ingrédients d’une recette : sans elles, rien ne se passe.
Par exemple, si vous écrivez une application qui utilise JavaScript et qui veut accéder à certaines fonctions d’une bibliothèque appelée jQuery (que de nombreux sites Web utilisaient autrefois), jQuery sera l’une de vos dépendances. Vous devez l’installer pour que, lorsque quelqu’un visite votre site, il puisse voir les animations ou les interactions que vous avez créées avec elle !
Les gestionnaires de paquets aident à gérer ces relations entre les projets en gérant les dépendances pour nous, de sorte que nous n’ayons pas à nous soucier de les télécharger manuellement nous-mêmes chaque fois que nous voulons ajouter ou mettre à jour quelque chose. Ils s’assurent également que tout fonctionne correctement une fois installé (ce qui est parfois plus facile à dire qu’à faire).
Node est livré pré-packagé avec un gestionnaire de paquets appelé NPM
NPM est le gestionnaire de paquets par défaut, et en tant que tel, il est intégré au runtime de node. Vous pouvez utiliser NPM pour installer des paquets depuis GitHub ou NPM directement. Vous pouvez également publier vos paquets sur ce site afin que d’autres puissent les installer en utilisant leur version de NPM.
NPM n’est pas seulement utilisé pour installer des paquets ; il gère également la résolution des dépendances et les conflits de version entre deux ou plusieurs bibliothèques ou modules requis dans la base de code de votre application.
Cela signifie que si plusieurs versions de quelque chose comme Express sont exécutées sur votre serveur à un moment donné, NPM s’assurera que chaque instance obtient ce dont elle a besoin sans entrer en conflit avec d’autres instances effectuant un travail similaire – et tout cela sans que vous ayez à faire quoi que ce soit de spécial, si ce n’est appeler simplement require() sur un objet quand c’est nécessaire !
NPM est un outil incroyablement puissant, et il est facile de commencer à l’utiliser. Mais si vous êtes novice en matière de Node et de JavaScript, il peut être difficile de savoir quels outils sont à votre disposition et lesquels sont les meilleurs pour un projet donné.
Le principal problème de NPM est qu’il est lent à installer les paquets. Ce n’est pas un gros problème si vous n’exécutez qu’un ou deux scripts occasionnels, mais cela peut être incroyablement frustrant si vous essayez de construire une application entière qui utilise des dizaines de bibliothèques et d’outils différents.
Yarn et PNPM sont plus rapides que NPM
Yarn est une alternative sûre et fiable à NPM qui utilise un fichier de verrouillage pour éviter les écrasements accidentels et s’assurer que vos dépendances sont correctement résolues lors de l’installation des paquets.
Il a également un temps d’installation plus rapide que NPM, ce qui le rend particulièrement utile si vous travaillez sur de grands projets qui ont de nombreux modules avec beaucoup de dépendances.
PNPM est une alternative à Yarn et à NPM, mais il n’est pas encore aussi populaire car il ne dispose pas de certaines des fonctionnalités de ces deux logiciels (comme les fichiers de verrouillage). Cependant, ses développeurs affirment que PNPM peut installer des paquets jusqu’à quatre fois plus rapidement que Yarn ou NPM grâce à sa légèreté ; cela signifie également une réduction de l’espace disque utilisé sur votre ordinateur !
Si vous construisez un projet qui ne nécessite qu’une poignée de dépendances, Yarn ou NPM seront probablement suffisants. Cependant, si vous travaillez sur de grands projets avec de nombreux modules et dépendances, PNPM pourrait être la meilleure option pour vous.
Avantages de l’utilisation de plusieurs gestionnaires de paquets
Un seul gestionnaire de paquets ne peut gérer qu’une seule version d’une bibliothèque donnée à la fois. Si vous souhaitez utiliser deux versions différentes de la même bibliothèque pour d’autres projets ou dans des environnements différents (par exemple, production ou développement), vous devrez installer deux paquets distincts sur votre système.
Cela peut conduire à des conflits si les deux paquets essaient de mettre à jour leur version de la même dépendance en même temps. L’utilisation de plusieurs gestionnaires de paquets signifie que vous avez plus de contrôle sur les dépendances qui sont installées et où, ce qui permet d’éviter ce genre de conflits.
Un autre avantage est que lors de l’utilisation de plusieurs gestionnaires de paquets, chacun fournira son propre ensemble unique de fonctionnalités. Certains peuvent être plus rapides que d’autres ; certains peuvent avoir de meilleures capacités de gestion des dépendances ; d’autres peuvent être plus adaptés au développement d’applications dans certains frameworks comme ReactJS ou VueJS, etc…
Enfin, l’utilisation de plusieurs gestionnaires de paquets peut contribuer à améliorer la productivité de votre développeur en réduisant le temps passé à rechercher et à installer les dépendances. Ceci est dû au fait que chaque gestionnaire de paquets sera conçu avec un ensemble spécifique de cas d’utilisation à l’esprit (par exemple, vitesse vs. sécurité vs. gestion des dépendances, etc…).
Utiliser plusieurs gestionnaires de paquets en les installant globalement
En utilisant la ligne de commande, vous pouvez spécifier le gestionnaire de paquets que vous souhaitez utiliser pour un projet spécifique. Configurez plusieurs gestionnaires de paquets sur votre machine :
- NPM est livré pré-packagé avec Node. Cela vous permettra d’installer d’autres paquets (et gestionnaires de paquets) à partir de la ligne de commande et de gérer les dépendances de tous vos projets avec NPM. C’est également utile si vous souhaitez exécuter des scripts NPM dans un navigateur (par exemple, Webpack), car les navigateurs ne sont pas préinstallés avec NPM !
- Installez également Yarn globalement à l’aide de NPM. Il s’agit d’une autre option populaire pour gérer les dépendances au sein des projets JavaScript ; elle présente certains avantages par rapport à NPM qui peuvent la rendre préférable pour certains types de projets ou d’équipes.
- Enfin, installez PNPM. Ce gestionnaire de paquets est un fork de NPM qui a été conçu pour être plus rapide et plus stable. Il possède également quelques fonctionnalités supplémentaires qui peuvent être utiles pour certains types de projets, comme la prise en charge des dépendances de GitHub.
Notez qu’une installation globale signifie que le paquet sélectionné sera disponible pour l’ensemble de votre système (vous pouvez accéder au programme n’importe où via la ligne de commande), tandis qu’une installation locale n’est accessible que par le répertoire de travail actuel.
Exemples concrets de l’utilisation de plusieurs gestionnaires de paquets
Regardez ces utilisations :
1. Yarn et NPM peuvent être utilisés ensemble (par exemple, create-react-app)
Ceci est utile lorsque vous voulez profiter de la vitesse et de l’efficacité de Yarn tout en gardant la compatibilité avec les paquets NPM. Si vous avez besoin de la dernière version d’une bibliothèque qui n’a pas encore été mise à jour pour être compatible avec Yarn, ou s’il y a une autre raison pour laquelle votre équipe préfère s’en tenir à NPM malgré sa vitesse plus lente ou son ensemble de fonctionnalités limité, alors cela pourrait bien fonctionner pour votre projet. Cela permet également d’éviter d’avoir deux arbres de dépendances distincts dans la configuration de votre repo mono !
2. Utiliser Yarn pour les paquets globaux et PNPM pour les installations locales
Bien que PNPM soit le gestionnaire de paquets le plus rapide, il peut être délicat à utiliser pour les paquets installés globalement. En effet, il utilise une structure de fichiers différente qui peut causer des problèmes de compatibilité avec des programmes tels que Visual Studio Code. C’est là que Yarn entre en jeu. Vous pouvez l’utiliser pour vos paquets installés globalement, et PNPM pour les installations locales. Cette solution est un bon moyen d’obtenir les avantages des deux gestionnaires de paquets sans avoir à trop modifier votre flux de travail. Avec cette configuration, si vous voulez faire des folies, vous pouvez supprimer complètement NPM de votre système (mais il est toujours bon d’avoir NPM comme sauvegarde).
3. Utilisation de PNPM avec NPM comme solution de secours
C’est une bonne option à considérer dans le cas où vous voulez utiliser PNPM, mais ne voulez pas que tous vos développeurs aient à apprendre un nouvel outil pour le moment. Cela leur permet de continuer à travailler avec NPM jusqu’à ce qu’ils soient à l’aise avec PNPM et en aient besoin pour leur travail.
L’utilisation de plusieurs gestionnaires de paquets facilite les choses
Vous pouvez utiliser plusieurs gestionnaires de paquets. Vous pouvez les installer globalement ou localement, et si vous voulez spécifier quel gestionnaire de paquets doit être utilisé pour un projet spécifique, utilisez simplement la ligne de commande !
Si vous voulez installer plusieurs gestionnaires de paquets sur votre système, assurez-vous que vous utilisez la même version de Node.js.
En conclusion, nous pensons que vous devriez utiliser plus d’un gestionnaire de paquets. C’est un excellent moyen de démarrer avec Node et aussi d’apprendre de nouveaux outils si vous êtes déjà familier avec NPM. Si vous n’avez pas déjà installé Node, l’installation est facile sous Windows.