2023-08-07

NVM vs NPM vs Yarn

Ventsislav Venkov

Développeur junior

NVM vs NPM vs Yarn

Par rapport à ces trois technologies, le NVM diffère des deux autres. Node Version Manager (NVM) est utilisé pour gérer les versions de Node.js. NPM et Yarn sont des gestionnaires de paquets Node.js. Ils permettent de télécharger, d'installer et de gérer des paquets lors du développement en JavaScript.

Qu'est-ce que le NVM ?

Comme vous le savez déjà, NVM est le gestionnaire de versions de nœuds. Il permet de passer rapidement et facilement d'une version de nœud à l'autre pour tester et développer une application.

Pourquoi utiliser les NVM ?

Le NVM permet aux utilisateurs de :
  • Avec une seule commande, vous pouvez télécharger localement n'importe quelle version LTS (Long Term Support) de Node.js.
  • À partir de la ligne de commande, vous pouvez rapidement passer d'une version à l'autre de Node.js.
  • Créez des alias pour passer facilement d'une version téléchargeable de Node.js à une autre.

Utilisation du NVM

Si NVM est installé, vous pouvez gérer n'importe quelle version de Node.js à l'aide d'une simple commande.

Cette liste répertorie toutes les versions locales installées de Node :

nvm ls

Pour installer une version spécifique, cette commande peut être utilisée :

nvm install <SPECIFIC_NODE_VERSION>

Pour utiliser (ou changer) une version spécifique de Node.js, utilisez la commande suivante :

nvm utiliser <SPECIFIC_NODE_VERSION>

NPM vs Yarn

Gestionnaire de paquets Node (NPM)

NPM est le gestionnaire de paquets par défaut pour Node. Des commandes simples sont prises en charge car il s'agit d'un installateur CLI (Command Line Interface). Il propose des paquets écrits en JSON et est open-source et gratuit. Dans un fichier package.json, les dépendances de votre application Node peuvent être listées et stockées. Les utilisateurs peuvent également distribuer des paquets. Le registre principal npm compte plus de 1,3 million de paquets. L'automatisation de la gestion des dépendances et des paquets est l'objectif principal de NPM. À l'aide d'un fichier "package.json", npm peut installer toutes les dépendances d'un projet en une seule commande lorsqu'il est utilisé comme gestionnaire de dépendances pour un projet local.

Fil (un autre négociateur de ressources)

La version la plus récente et améliorée de NPM est yarn. Facebook, Exponent, Google et Tilde l'ont créé en 2016 pour remplacer NPM. Il a été conçu pour offrir des fonctionnalités complexes qui manquaient à NPM. Pour stabiliser son utilisation, NPM a ajouté quelques fonctionnalités cruciales. Yarn utilise les mêmes techniques que NPM, mais il garde une trace de toutes les données d'installation en interne pour assurer la compatibilité entre les plateformes. Il est également plus sûr et plus stable que NPM.

Les différences

Yarn met en cache tous les paquets installés. Yarn installe les paquets simultanément, et c'est pourquoi Yarn est plus rapide que NPM.

Ils téléchargent tous deux des paquets depuis le dépôt npm. Yarn génère yarn.lock pour verrouiller les versions des dépendances du paquet par défaut.

Yarn effectue un contrôle de sécurité en arrière-plan lorsqu'il télécharge des paquets. Afin d'éviter de télécharger des scripts malveillants et de provoquer des problèmes de dépendance, il utilise les informations de licence du paquet. La sécurité était une préoccupation majeure pour NPM dans ses premières itérations. Depuis la version 6, chaque fois qu'un paquet est installé, NPM effectue un audit de sécurité. Cela permet de s'assurer qu'il n'y a pas de dépendances conflictuelles et de prévenir les vulnérabilités.

Il existe de nombreuses similitudes fondamentales entre Yarn et NPM :

  • Fichiers de verrouillage générés automatiquement
  • Aide à l'utilisation des espaces de travail
  • Support pour l'utilisation de scripts distants - npx vs yarn dlx
Modifications récentes de NPM et Yarn

Yarn et NPM sont constamment mis à jour avec des corrections de bugs et de nouvelles fonctionnalités telles que NPX et PnP.

NPX

Node Package Executor, abrégé NPX. Il s'agit d'une fonctionnalité introduite à partir de la version 5.2.0 de NPM. NPX facilite l'exécution d'instructions uniques. Grâce à NPX, les paquets répertoriés dans le registre NPM peuvent être exécutés sans être ajoutés en tant que dépendances à votre projet.

Pour vous familiariser avec NPX, lisez ce manuel.

Fil2 (Berry)

Avec la sortie de Yarn2, également connu sous le nom de Berry, Yarn a élargi sa gamme de fils. Plug'n'Play, Constraints, Offline Installation, Zero-Installation, Workspaces, et Yarn Dlx ne sont que quelques-unes des nouvelles fonctionnalités de cette édition de Yarn (le nouveau Yarn NPX).

Si vous avez effectué correctement les étapes décrites dans cette section, vous verrez un nouveau bloc dans phpinfo().

Voici les améliorations les plus notables :

Plug'n'Play est une autre méthode d'installation. Contrairement à Node.js, qui crée un répertoire node modules et gère lui-même la résolution, Plug'n'Play génère simplement un fichier pnp.js.

  • Élimination des modules de nœuds.
  • Les délais d'installation des paquets ont été réduits de 70 %.
  • Si vous négligez de fournir une dépendance, Plug'n'Play vous donnera un avertissement.
  • Démarrage plus rapide des projets en cours.

Si vous souhaitez en savoir plus sur Plug'n'Play, lisez ce manuel.

Les dépendances d'un projet peuvent être gérées à l'aide de contraintes, qui vous permettent de déclarer des règles générales dans prologue (un langage de programmation déclaratif). Tant qu'il n'y a pas de dépendances incompatibles dans votre référentiel, vous pouvez mettre en place des règles pour les faire respecter.

Espaces de travail modernisés - vous pouvez désormais mettre en place un dépôt mono afin de contrôler les interdépendances entre plusieurs projets. Il est ainsi possible pour plusieurs projets de se référer les uns aux autres. Toute modification apportée à un dépôt met automatiquement à jour les autres.

Les deux fils, Yarn1 et Yarn2, sont très différents. Apprenez à passer de Yarn1 à Yarn2 à l'aide de ce tutoriel pratique.

En conclusion

Il existe de grandes différences entre NVM, NPM et Yarn.

  • Node.JS peut être configuré avec NVM.
  • NPM est le meilleur moyen d'installer tous les paquets dont vous avez besoin.
  • Yarn fonctionne comme NPM, mais il est plus rapide et plus stable lors de l'installation et du référencement.
  • pour votre application Node.JS.

Ce qu'ils ont en commun, c'est qu'ils sont tous utilisés par les applications Node.

Chez Bulcode, nous avons l'habitude de travailler aussi bien avec NPM qu'avec Yarn, mais le choix préféré est généralement Yarn.

Tags :

Partager cet article :

Merci de vous être abonné !

S'abonner à notre newsLetter

    Drupal 9 convertit les images au format WebP

    Drupal 9 convertit les images au format WebP

    WebP est capable de porter la compression des données à un niveau supérieur grâce à l'inclusion d'un mode de prédiction dans le processus JPG, ce qui permet de voir clairement comment il peut surpasser son homologue basé sur JPG. Les résultats le prouvent.
    Écrit par Vasil Boychev2024-03-14
    Qu'est-ce que la méthode Agile et pourquoi l'utiliser ?

    Qu'est-ce que la méthode Agile et pourquoi l'utiliser ?

    La méthode Agile est une méthode de livraison de logiciels itérative et échelonnée dans le temps qui vise à fournir des logiciels progressivement tout au long du projet plutôt qu'en une seule fois vers la fin.
    Écrit par Svetoslava Angelova2024-03-14
    Laravel Mix - un wrapper simple et puissant autour de Webpack

    Laravel Mix - un wrapper simple et puissant autour de Webpack

    Laravel Mix fournit une API fluide pour définir les étapes de construction de webpack pour votre application Laravel en utilisant plusieurs pré-processeurs CSS et JavaScript communs.
    Écrit par Stefani Tashkova2024-03-14
    L'importance du bon partenaire de développement dans le cycle de vie de votre logiciel

    L'importance du bon partenaire de développement dans le cycle de vie de votre logiciel

    La réussite à portée de main : L'art de choisir le partenaire idéal pour le développement de logiciels. Découvrez le rôle essentiel des partenaires dans le développement de logiciels, les secrets du retour sur investissement et restez à la pointe des tendances du secteur dans cet article incontournable.
    Écrit par Mihail Shahov2024-03-14
    Comprendre les versions de Drupal et planifier une stratégie de migration

    Comprendre les versions de Drupal et planifier une stratégie de migration

    Reconnaître les différentes versions de Drupal et maintenir votre site web à jour.
    Écrit par Svetoslava Angelova2024-03-14
    Tutoriel du module Config ignore pour Drupal

    Tutoriel du module Config ignore pour Drupal

    Parfois, nous ne voulons pas que nos configurations soient partagées dans la base de code. Que faire dans ce cas ?
    Écrit par Ivaylo Tsandev2024-03-13
    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Découvrez la synergie dynamique entre Drupal 10 et Next.js, alors que cette puissante combinaison redessine le paysage du développement web. Next.js, un framework open-source basé sur React, est intégré de manière transparente en tant que frontend headless de Drupal 10, offrant une pléthore d'avantages. De l'amélioration des performances grâce à des fonctionnalités telles que le fractionnement automatique du code et le rendu côté serveur à la conception flexible et aux capacités de référencement, cette collaboration permet aux développeurs de créer des applications web très performantes, évolutives et visuellement attrayantes. La gestion efficace du contenu de Drupal 10 associée à l'adaptabilité de Next.js aux tendances garantit une approche de développement de pointe, positionnant ce tandem à l'avant-garde des pratiques modernes de développement web. Embrassez l'avenir avec la combinaison Drupal 10 et Next.js, redéfinissant la façon dont nous abordons et créons des expériences en ligne dynamiques.
    Écrit par Todor Kolev2024-03-13
    Rôles dans Scrum

    Rôles dans Scrum

    Les rôles Scrum et la manière dont vous pouvez les intégrer dans votre organisation.
    Écrit par Svetoslava Angelova2024-03-13
    Événements SCRUM

    Événements SCRUM

    Scrum définit plusieurs événements (parfois appelés cérémonies) qui se déroulent au cours de chaque sprint : la planification du sprint, la mêlée quotidienne, la revue du sprint et la rétrospective du sprint.
    Écrit par Svetoslava Angelova2024-03-13
    Drupal sans tête avec Next.js - un exemple simple à suivre

    Drupal sans tête avec Next.js - un exemple simple à suivre

    La tendance récente, dans le développement web en général, et par conséquent dans le développement Drupal, est d'utiliser la technologie headless. La tendance récente, dans le développement web en général, et par conséquent dans le développement Drupal, est d'utiliser la technologie headless.
    Écrit par Mihail Shahov2024-03-13
    Embaucher des développeurs de logiciels spécialisés (équipes)

    Embaucher des développeurs de logiciels spécialisés (équipes)

    Vous en avez assez d'augmenter les dépenses de votre équipe de développement interne ? Pourquoi ne pas faire appel à une équipe dédiée pour 40 à 60 % du coût ?
    Écrit par Mihail Shahov2024-03-13
    Comment nous avons optimisé la note globale d'un SSL de B à A+.

    Comment nous avons optimisé la note globale d'un SSL de B à A+.

    L'optimisation de la mise en œuvre du protocole SSL permet à tous les clients d'ouvrir et de parcourir le site en toute sécurité, sans avertissement.
    Écrit par Mihail Shahov2024-03-13

    Si vous avez besoin d'aide pour mener à bien un projet utilisant ces technologies, n'hésitez pas à nous contacter ;

    Paramètres de confidentialité