Partager cet article :

Blog
Aug 07, 20235 min read

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.

S'ABONNER À NOTRE NEWSLETTER

Partager cet article :

S'ABONNER À NOTRE NEWSLETTER

Articles de blog connexes

    Pourquoi les startups hésitent à travailler avec une agence de développement de logiciels sur mesure - et comment nous répondons à toutes leurs préoccupations

    Blog

    Pourquoi les startups hésitent à travailler avec une agence de développement de logiciels sur mesure - et comment nous répondons à toutes leurs préoccupations

    <p>Les startups hésitent souvent à travailler avec des agences de logiciels pour des raisons de coût, de contrôle et de flexibilité. Découvrez comment les solutions logicielles sur mesure de Bulcode relèvent chaque défi, garantissant ainsi croissance et agilité.</p>

    Écrit par Svetoslava Angelova
    Nov 05, 20247 min read
    Construire une équipe Agile performante : Notre approche éprouvée

    Blog

    Construire une équipe Agile performante : Notre approche éprouvée

    Découvrez comment nous construisons des équipes Agile performantes en définissant des rôles clairs, en favorisant la collaboration et en utilisant des outils flexibles.

    Écrit par Svetoslava Angelova
    Aug 27, 202411 min read
    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Blog

    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Drupal 11 est sorti ! Dans cet article, découvrez ses fonctionnalités et améliorations passionnantes. Mettez-le à jour dès maintenant pour redéfinir votre stratégie numérique avec l'aide des experts de Bulcode.

    Écrit par Svetoslava Angelova
    Aug 05, 20249 min read
    Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

    Blog

    Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

    Découvrez comment les composants à répertoire unique (SDC) de Drupal Core rationalisent le processus de développement en encapsulant les fichiers liés aux composants dans un répertoire unique. Découvrez les avantages des SDC et suivez un guide étape par étape pour les mettre en œuvre dans vos projets Drupal.

    Écrit par Nikolay Tsekov
    Aug 07, 20244 min read
    Tutoriel du module Config ignore pour Drupal

    Blog

    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 Tsandev
    Aug 08, 20237 min read
    Comment nous avons optimisé la note globale d'un SSL de B à A+.

    Blog

    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 Shahov
    Aug 07, 20233 min read
    Comprendre les versions de Drupal et planifier une stratégie de migration

    Blog

    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 Angelova
    Aug 08, 20235 min read
    Drupal 9 convertit les images au format WebP

    Blog

    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 Boychev
    Aug 08, 20238 min read
    Vue d'ensemble de React - Définition, SPA, Composants, Hooks

    Blog

    Vue d'ensemble de React - Définition, SPA, Composants, Hooks

    React est un framework JavaScript front-end gratuit et open-source permettant de créer des interfaces utilisateur basées sur des composants d'interface utilisateur. Il est également connu sous le nom de React.js ou ReactJS.

    Écrit par Mihail Shahov
    Aug 07, 20237 min read
    Qu'est-ce que la méthode Agile et pourquoi l'utiliser ?

    Blog

    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 Angelova
    Aug 08, 20235 min read
    Quel modèle d'engagement informatique vous convient le mieux ?

    Blog

    Quel modèle d'engagement informatique vous convient le mieux ?

    Prix fixe, temps et matériel, ou équipes dédiées ? Examinez attentivement les avantages et les inconvénients du modèle d'engagement pour votre projet.

    Écrit par Svetoslava Angelova
    Aug 07, 202311 min read
    Les sites web des aéroports de Varna et Burgas utilisent des composants React dans Drupal

    Blog

    Les sites web des aéroports de Varna et Burgas utilisent des composants React dans Drupal

    Drupal est un système modulaire dont les fonctions peuvent être adaptées à de nombreux besoins différents, ce qui est particulièrement important pour les projets d'administration publique.

    Écrit par Mihail Shahov
    Aug 08, 20234 min read

    PRENDRE CONTACT

    Vous avez un projet à lancer ?