GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Fil vs NPM :une comparaison complète

Présentation

Yarn et NPM sont deux des gestionnaires de packages Node.js les plus populaires. Ils permettent de télécharger, d'installer et de gérer des packages lors du développement en JavaScript.

Dans ce didacticiel, nous comparerons Yarn et NPM, examinerons leurs performances, leur facilité d'utilisation, leur sécurité et les fonctionnalités qu'ils offrent.

Fils vs NPM :Définitions

Fil (encore un autre négociateur de ressources) et NPM (Node Package Manager) sont des gestionnaires de packages utilisés pour le codage JavaScript. Ils fonctionnent avec Node.js , qui aide les utilisateurs à développer et à exécuter du code JavaScript en dehors d'un navigateur Web.

Node.js utilise un grand nombre de packages et de bibliothèques open source pour rendre le codage plus simple et efficace. Les gestionnaires de packages tels que Yarn et NPM permettent aux utilisateurs d'installer, de gérer, de mettre à jour et de supprimer facilement des packages, des bibliothèques et des dépendances.

Qu'est-ce que le fil ?

Facebook a développé Yarn en 2016 en remplacement de NPM. Il a été conçu pour offrir des fonctionnalités plus avancées qui manquaient à NPM à l'époque (telles que le verrouillage de version) et créer un produit plus sécurisé, stable et efficace.

Cependant, depuis la sortie de Yarn, NPM a ajouté plusieurs fonctionnalités cruciales. Dans son état actuel, Yarn est désormais plus une alternative au NPM qu'un remplacement.

Qu'est-ce que le NMP ?

NPM est le gestionnaire de packages par défaut pour Node.js avec un outil CLI qui aide à installer, gérer et supprimer les packages Node.js. Il permet également aux utilisateurs de partager des packages Node.js open source.

Fil vs NPM :Comparaison

Vous trouverez ci-dessous un aperçu de certaines des similitudes et des différences entre Yarn et NPM.

Installation

Nous allons commencer par comparer le processus d'installation de Yarn et NPM :

Laine

Pour commencer à utiliser Yarn, vous devez l'installer à l'aide du programme d'installation MSI du site Web officiel ou d'un gestionnaire de packages tel que Chocolatey, Scoop CLI ou NPM lui-même. Apprenez-en plus dans notre guide d'installation de Yarn sur Windows et d'installation de Yarn sur Ubuntu 18.04.

MNP

NPM est inclus par défaut avec l'installation de Node.js et ne nécessite aucune étape supplémentaire pour l'installation. Pour en savoir plus sur l'installation de Node.js et NPM, consultez l'un de nos guides :

  • Comment installer Node.js et NPM sur Ubuntu 18.04 et 20.04
  • Comment installer Node.js et NPM sur CentOS 7
  • Comment installer Node.js et NPM sous Windows
  • Comment installer Node.js et NPM sur Mac

Dépendances

Laine

Yarn version 1 et NPM gèrent les dépendances de manière très similaire. Ils stockent tous les deux les métadonnées du projet dans le package.json fichier, situé dans le node_modules dossier dans le répertoire du projet.

A partir de la version 2, Yarn n'utilise plus les node_modules dossier pour suivre les dépendances. Au lieu de cela, Yarn 2.0 utilise le Plug'n'Play fonctionnalité, qui génère un seul .pnp.cjs dossier. Ce fichier contient une carte de la hiérarchie des dépendances pour un projet.

Le fil utilise le yarn commande pour installer les dépendances. Il installe des dépendances en parallèle, vous permettant d'ajouter plusieurs fichiers en même temps.

L'installation des dépendances crée automatiquement un fichier de verrouillage qui enregistre la liste exacte des dépendances utilisées pour le projet. Avec Yarn, ce fichier s'appelle yarn.lock .

MNP

NPM installe les dépendances à l'aide de npm install commande. Les dépendances sont installées séquentiellement, les unes après les autres.

NPM crée également un fichier de verrouillage de version nommé package-lock.json . Yarn prend également en charge package-lock.json fichiers, permettant aux utilisateurs de migrer les données de version de NPM vers Yarn.

Vitesse et performances

Comme mentionné ci-dessus, alors que NPM installe les packages de dépendance de manière séquentielle, Yarn installe en parallèle. Pour cette raison, Yarn fonctionne plus rapidement que NPM lors de l'installation de fichiers plus volumineux.

Les deux outils offrent également la possibilité d'enregistrer les fichiers de dépendance dans le cache hors ligne. Cela permet aux utilisateurs d'installer des dépendances même s'ils sont hors ligne.

De plus, à partir de la version 2, Yarn utilise le mode Zéro installation fonctionnalité. Cette fonctionnalité prend la carte de dépendance de .pnp.cjs fichier et l'utilise pour effectuer une installation de dépendance hors ligne avec pratiquement aucun délai.

Sécurité

Laine

Yarn effectue une vérification de sécurité en tant que processus d'arrière-plan lors du téléchargement de packages. Il utilise les informations de licence du package pour s'assurer qu'il ne télécharge pas de scripts malveillants ou ne provoque pas de conflits de dépendance.

Les deux outils utilisent des protocoles de cryptage pour assurer un transfert de données sécurisé. Yarn vérifie les packages avec la somme de contrôle, tandis que NPM utilise SHA-512 (Secure Hash Algorithm) stocké dans package-lock.json fichier.

MNP

Les menaces de sécurité étaient un problème important dans les premières versions de NPM. Depuis la version 6, NPM effectue un audit de sécurité chaque fois que vous installez un package. Cela permet d'éviter les vulnérabilités et garantit qu'il n'y a pas de dépendances conflictuelles.

Vous pouvez également exécuter un audit manuel à l'aide de l'npm audit commande. Si NPM détecte des vulnérabilités, utilisez npm audit fix devrait résoudre les problèmes.

Facilité d'utilisation

Yarn et NPM sont relativement faciles à utiliser, d'autant plus qu'ils partagent plusieurs commandes. La sortie de la commande est généralement facile à lire et à comprendre, bien qu'elle puisse devenir moins visible lors de l'installation d'un grand nombre de packages.

Les deux gestionnaires de packages offrent un mode interactif qui aide les utilisateurs à configurer de nouveaux projets. Dans Yarn, ce mode est activé par défaut, tandis que NPM nécessite le npm-upgrade package pour permettre l'interactivité.

Caractéristiques

Yarn et NPM ont plusieurs caractéristiques clés en commun :

  • Génération des fichiers de verrouillage : Les deux gestionnaires de packages créent automatiquement un fichier de verrouillage de version. Avec Yarn, ce fichier s'appelle yarn.lock , tandis que NPM nomme le fichier package-lock.json .
  • Utilisation des espaces de travail : Yarn et NPM prennent en charge les espaces de travail, ce qui vous permet d'utiliser un référentiel unique pour gérer les dépendances de plusieurs projets.
  • Scripts distants : NPM et Yarn vous permettent d'exécuter des scripts à distance, en utilisant le npx commande dans NPM et le yarn dlx commande dans Yarn.

Les fonctionnalités sont exclusives à Yarn :

  • Plug'n'Play : Au lieu d'utiliser les node_modules dossier, Yarn génère un seul .pnp.cjs fichier qui mappe les dépendances du projet. Cela permet d'optimiser les arborescences de dépendances et d'accélérer le démarrage du projet et l'installation du package.
  • Aucune installation : Cette fonctionnalité est liée à Plug'n'Play , en utilisant le .pnp.cjs fichier pour mapper les packages stockés dans le cache hors ligne. Cela vous permet d'accéder aux packages stockés et de les installer presque sans délai.
  • Vérification de la licence : Yarn dispose d'un vérificateur de licence intégré lors du téléchargement et de l'installation de packages.

Commandes

Le tableau ci-dessous donne un aperçu de certaines des commandes les plus fréquemment utilisées pour NPM et Yarn :

Commande NPM Fil
Initialiser un projet npm init yarn init
Exécuter des tests pour le package actuel npm test yarn test
Vérifier les packages obsolètes npm outdated yarn outdated
Publier un package npm publish yarn publish
Exécuter un script npm run yarn run
Gérer le cache de packages local npm cache clean yarn cache clean
Se connecter ou se déconnecter npm login/logout yarn login/logout
Installer les dépendances npm install yarn
Installer des packages npm install [package name] yarn add [package name]
Désinstaller les packages npm uninstall [package name] yarn remove [package name]
Gestionnaire de mise à jour npm update yarn upgrade
Mettre à jour les packages npm update [package name] yarn upgrade [package name]
Installer les packages globalement npm install --global [package name] yarn global add [package name]
Désinstaller les packages globalement npm uninstall --global [package name] yarn global remove [package name]
Mise à jour interactive des dépendances npm run upgrade-interactive yarn upgrade-interactive
Exécuter le package à distance yarn dlx
Vérifier les licences yarn licenses ls

Fil vs NPM :comment choisir

Il est essentiel de prendre en compte les avantages et les inconvénients de NPM et de Yarn lorsque vous décidez lequel utiliser.

Fil

Avantages

  • Prend en charge l'installation parallèle et les installations zéro, qui augmentent considérablement les performances.
  • Les nouvelles versions de Yarn offrent une forme plus sécurisée de verrouillage de version.
  • Communauté d'utilisateurs active.

Inconvénients

  • Yarn ne fonctionne pas avec les versions de Node.js antérieures à la version 5.
  • Yarn a rencontré des problèmes lors de l'installation de modules natifs.

MNP

Avantages

  • Facile à utiliser, en particulier pour les développeurs habitués au flux de travail des anciennes versions.
  • L'installation locale du package est optimisée pour économiser de l'espace sur le disque dur.
  • L'interface utilisateur simple permet de réduire le temps de développement.

Inconvénients

  • Le registre NPM en ligne peut devenir peu fiable en cas de problèmes de performances. Cela signifie également que NPM nécessite un accès réseau pour installer les packages à partir du registre.
  • Malgré une série d'améliorations dans différentes versions, il existe toujours des failles de sécurité lors de l'installation des packages.
  • La sortie de la commande peut être difficile à lire.

Verdict

Compte tenu de tout ce qui précède, NPM convient mieux aux développeurs qui y sont habitués et satisfaits de son flux de travail actuel. Il offre une expérience utilisateur raisonnablement efficace tout en économisant de l'espace sur le disque dur.

D'autre part, Yarn offre des fonctionnalités plus avancées, telles que Plug'n'Play et Zero Installs. Il offre également des performances et une sécurité légèrement meilleures, mais au détriment de l'espace disque.


Ubuntu
  1. Comment installer Yarn sur Ubuntu 18.04

  2. Comment installer Yarn sur Ubuntu 20.04 ?

  3. Installer npm sur Ubuntu 16.04

  4. Comment installer le gestionnaire de packages Yarn NPM sur Oracle Linux 8

  5. Comparaison de dates dans Bash

Comment installer le gestionnaire de paquets Yarn NPM sur Ubuntu 20.04

Comment installer en toute sécurité des packages à l'aide de Npm ou de Yarn sous Linux

Comment installer le client Yarn NPM sur Ubuntu et gérer les dépendances via celui-ci

Comment installer le fil sur Ubuntu 20.04

Comment installer Yarn sur Ubuntu 22.04

AppArmor vs SELinux :comparaison complète