30 DECEMBRE 2022
Yarn vs NPM
Qu’est-ce qu’un gestionnaire de paquets et lequel devez-vous utiliser ?
Un outil de développement Web important est un gestionnaire de packages, qui vous aide à gérer les dépendances de votre projet. Pour être plus précis, ils vous fournissent des méthodes pour installer, désinstaller et mettre à jour de manière transparente les dépendances/paquets, gérer les dépendances en double et vous aider à configurer les paramètres de votre projet. Tiré de MDN , sans eux, vous auriez à gérer vous-même :
- Recherche de tous les fichiers JavaScript de package corrects.
- Vérifiez-les pour vous assurer qu’ils ne présentent aucune vulnérabilité connue.
- Téléchargez-les et placez-les aux bons endroits dans votre projet.
- Écrire le code pour inclure le ou les packages dans votre application (cela a tendance à être fait à l’aide de modules JavaScript, un autre sujet qui mérite d’être lu et compris).
- Faire la même chose pour toutes les sous-dépendances des packages, dont il pourrait y avoir des dizaines ou des centaines.
- Supprimez à nouveau tous les fichiers si vous souhaitez supprimer les packages.
Pour que les gestionnaires de packages fonctionnent, ils s’appuient sur le registre de packages, qui est un emplacement central où les packages sont publiés et permet au gestionnaire de packages de savoir d’où installer les packages. Cela ne signifie pas pour autant qu’il existe un registre central de paquets. En fait, vous pouvez gérer votre propre registre de packages à l’aide de Microsoft Azure ou GitHub.
Connaître les différents gestionnaires de packages pour comprendre les avantages et les inconvénients de chacun est important pour vous aider à décider lequel utiliser pour votre projet. Plongeons-nous dans deux des gestionnaires de paquets les plus populaires, npm et yarn !
NPM vs Yarn
NPM signifie « Node Package Manager » et est plus ancien que yarn, initialement publié en 2010 et automatiquement installé avec Node. Yarn, quant à lui, signifie « Yet Another Resource Negotiator » et a été publié par Facebook en 2016 pour répondre aux problèmes de performances et de sécurité à l’époque. Pour l’installer, vous devrez installer avec npm en utilisant la commande suivante dans votre ligne de commande :npm install yarn --global
Bien que Yarn soit sorti après NPM pour résoudre ses problèmes, NPM a depuis apporté des améliorations pour résoudre ses propres problèmes qui ont rendu Yarn populaire. Essentiellement, le besoin ou les avantages d’ajouter Yarn au lieu de NPM sont devenus minces, car tout ce que Yarn faisait NPM ne pouvait pas faire aussi bien. En conséquence, en janvier 2020, Yarn a publié Yarn 2 pour rester compétitif, seulement pour faire face à de nombreuses critiques de la part de la communauté des développeurs. Yarn 3 est sorti en juillet 2021 avec des critiques positives pour répondre aux critiques du fil 2, cependant, dans le but de comparer NPM avec Yarn, je me concentrerai sur le Yarn 1.
Similitudes et différences
À un niveau élevé, outre les commandes, les principales différences entre les deux sont leur popularité et la manière dont elles sont installées (comme mentionné ci-dessus), gèrent les dépendances, les performances, la sécurité et les espaces de travail. Entre les deux, NPM est systématiquement plus téléchargé , mais sur GitHub Yarn a plus d’activité que NPM .
Ils gèrent tous deux leurs dépendances avec un fichier de verrouillage généré automatiquement, ce qui est important car le fichier de verrouillage contient les entrées des versions exactes des dépendances utilisées dans le projet pour faciliter l’installation de packages sur leur local et être cohérent. De plus, il garantit que la même structure de fichiers node_modules
est conservée dans tous les environnements. Cela a été initialement introduit par Yarn, cependant, il est important de noter que Yarn 2 par défaut ne prend pas en charge le node_modules
dossier en faveur d’une nouvelle Plug’n’Play
approche sur laquelle vous pouvez en savoir plus ici .
Sur les fronts de performance et de sécurité, qui ont été les principaux facteurs expliquant pourquoi Yarn a été introduit, Yarn est toujours en avance. Cependant, les écarts entre les deux ne sont plus aussi grands qu’avant. Pour des raisons de performances, lorsqu’un package doit être installé, une série de tâches sont exécutées ; Yarn exécute ces tâches en parallèle tandis que NPM les exécute par package et de manière séquentielle. Bien que les deux soient relativement égaux, Yarn est toujours plus sécurisé car il n’installe que des fichiers à partir des fichiers yarn.lock
ou package.json
tandis que NPM exécute automatiquement un code qui permet d’inclure d’autres packages. Cela dit, les deux utilisent un algorithme de hachage cryptographique pour garantir l’intégrité des packages.
Enfin, pour répéter que Yarn a apporté plus que de simples correctifs basés sur NPM et que les deux se poussent mutuellement à être meilleurs, une fonctionnalité que les deux ont maintenant est les espaces de travail. Les espaces de travail ont été introduits par Yarn en 2017 et prennent en charge une structure monorepo en vous permettant de configurer plusieurs packages.json/packages. Bien que Yarn dispose encore d’outils supplémentaires que NPM ne prend pas encore en charge, NPM rattrape son retard et prend en charge sa propre version des espaces de travail.
Conclusion
Dans cet article, nous avons expliqué ce que sont les gestionnaires de paquets et ce qu’ils font. Nous avons également examiné de plus près les deux gestionnaires de packages les plus populaires, NPM et Yarn, et comment ils se comparent afin de comprendre les avantages et les inconvénients de l’utilisation de l’un par rapport à l’autre. Peut-être le plus important est leur potentiel pour l’avenir.
source: blog.devgenius.io