Retour au blog

Utilisation des modules Node.js avec npm et package.json : un tutoriel

Utilisation des modules Node.js avec npm et package.json : un tutoriel

Node.js est un environnement d'exécution JavaScript multiplateforme et open-source. Ces dernières années, il est devenu un choix populaire pour le développement web back-end en raison de ses performances d'entrée/sortie (E/S) rapides et de son imbattable syntaxe JavaScript. De plus, sa nature adaptative permet une personnalisation rapide, ce qui permet à cette technologie de serveur de se démarquer de ses concurrents.

Node.js Package Manager — Un aperçu

Node.js Package Manager ou npm est le gestionnaire de paquets par défaut pour JavaScript. Npm est souvent utilisé pour installer des scripts de projet et faire fonctionner des modules externes dans un projet Node.js. De plus, il garde une trace des modules installés dans un projet à l'aide du fichier package.json qui se trouve dans le répertoire du projet. Npm stocke et enregistre les informations suivantes :

  • Les modules requis pour un projet et leurs versions installées, le cas échéant.
  • La description des métadonnées d'un projet qui comprend, entre autres, des détails sur l'auteur et la licence.
  • Des scripts exécutables pour automatiser des tâches liées au projet ou orientées vers un objectif.

Dans ce tutoriel, nous allons vous guider à travers les étapes d'utilisation des modules Node.js avec npm et package.json.

Commençons !

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de ce qui suit :

Étape 1 : Créer un fichier package.json

Commençons notre tutoriel en prenant l'exemple d'un projet fictif utilisant le module locator de Node.js. Le projet vise à collecter l'adresse IP de l'utilisateur et à partager le résultat sous la forme du pays d'origine de l'utilisateur. Comme nous nous concentrons sur la compréhension de l'utilisation des modules Node.js avec npm, il n'est pas nécessaire d'écrire les modules manuellement. Au lieu de cela, nous utiliserons les paquets préinstallés et personnalisables dans notre projet.

JSON ou JavaScript Object Notation est un format standard utilisé pour partager et transmettre des données. Au départ, nous allons créer un fichier JSON qui stockera et gérera les dépendances logicielles. Cependant, créer manuellement un package.json est fastidieux et prend du temps. Par souci de simplicité, nous utiliserons la commande init pour créer le fichier package.json au lieu de consacrer nos efforts à écrire des blocs de code supplémentaires pour rédiger notre JSON à partir de zéro.

  • commande init command

Tout d'abord, créons un nouveau dossier à l'aide de la commande mkdir et nommons-le locator:

Ensuite, utilisez la commande cd pour vous déplacer vers le dossier nouvellement créé :

Ensuite, entrez npm pour initialiser l'invite interactive :

Après cela, vous verrez la sortie :

Node.js Modules npm init 1

1. name

Vous serez dirigé vers le name de votre nouveau projet ; le dossier actuel. Vous verrez les valeurs par défaut entre parenthèses (). Pour que ce tutoriel reste simple et facile à comprendre, nous conserverons les options par défaut. Appuyez sur ENTRÉE pour accepter et continuer.

2. version

La valeur suivante est le nom de version qui est une exigence clé si vous partagez votre projet dans le dépôt de paquets npm.

Remarque : Les paquets Node.js suivent le guide de Semantic Versioning (semver).

Premier chiffre : la version MAJEURE qui ne change que lorsque l'API change.

Deuxième chiffre : la version MINEURE qui change lorsque des fonctionnalités supplémentaires sont ajoutées.

Dernier chiffre : la version PATCH qui change lorsqu'une erreur ou un bogue est résolu.

3. description

La description est une chaîne informative qui décrit le processus de fonctionnement du module Node.js. Dans notre démo, le projet locator récupérera l'adresse IP de l'utilisateur et renverra le pays d'origine.

Remarque : La plupart du temps, les modules ont un fichier index.js comme point d'entrée. C'est également la propriété main de package.json, le point d'entrée des modules npm. Cependant, si package.json n'est pas trouvé, Node.js chargera index.js automatiquement.

4. commande de testcommand

Il s'agit d'un script ou d'une commande exécutable pour lancer les tests de votre projet. Comme les tests dépassent le cadre de notre tutoriel, ignorons cette étape et appuyons sur ENTRÉE.

5. commande initcommand

La commande init demandera le dépôt GitHub du projet. Là encore, ignorons cette partie et continuons.

6. keywords

Mots-clés sont un tableau de chaînes de caractères utilisées pour rechercher un dépôt. Il est recommandé de garder les mots-clés précis et pertinents pour votre projet afin qu'ils soient facilement traçables.

Listez ces mots-clés sous forme de chaînes de caractères et séparez-les par des virgules. Dans notre projet, saisissez ip, country, latitude, et longitude à l'invite et vous les verrez inclus en tant que mots-clés dans package.json.

7. author

Considérez le champ author comme un retour d'information et un moyen d'interagir avec vos utilisateurs. Par exemple, si des utilisateurs détectent une erreur dans votre module, ils peuvent utiliser ce champ pour vous en informer et obtenir la correction de l'erreur.

  • Format : "Nom \<E-mail\> (Site web)".

    • Démo : "Paul\<paul@your_domain\> (https://your_domain)"

L'ajout d'e-mail et de site web est facultatif. Cependant, vous pouvez spécifier un auteur valide et ajouter vos coordonnées en tant qu' author. Confirmez les détails et appuyez sur ENTRÉE.

8. license

Le champ license illustre les conditions juridiques que les utilisateurs doivent connaître lorsqu'ils utilisent votre module. Comme Node.js sont open source, npm le configure sur ISC-license automatiquement.

Accédez à la page des licences open source et choisissez l'option de l' Open Source Initiative qui convient le mieux à vos besoins. Saisissez UNLICENSED à l'invite si vous n'avez pas besoin de licence pour votre dépôt. Dans notre tutoriel, nous utiliserons la licence ISC par défaut. Appuyez sur ENTRÉE pour terminer ce processus.

La commande init créera le fichier package.json et affichera le résultat :

Node.js Modules npm init

Ensuite, appuyez sur ENTRÉE pour continuer et créer le fichier package.json . Notre fichier JSON conservera une trace de tous les modules et paquets que nous installerons dans notre projet.

Dans l'étape suivante, nous installerons les dépendances et les modules Node.js.

Étape 2 : Installer les dépendances et les modules

Créer des bibliothèques externes personnalisées prend du temps et nécessite des efforts considérables. Alternativement, le moyen le plus efficace consiste à installer des dépendances prédéfinies et des bibliothèques externes. Dans notre tutoriel, nous utiliserons la bibliothèque HTTP pour permettre à notre module de localisation de démonstration de faire une requête API externe afin de collecter des données géographiques.

Dans ce guide, nous utiliserons la bibliothèque axios pour effectuer des requêtes HTTP. Tout d'abord, installons axios:

Commencez par installer le paquet npm suivi de leur énumération en les séparant par des espaces. De plus, incluez l'option --save pour vous assurer que le projet est enregistré en tant que dépendance du projet.

Vous verrez le résultat suivant :

Node.js Modules install axios

Ouvrez le fichier package.json en utilisant nano ou tout autre éditeur de texte de votre choix :

Notez la propriété nouvellement ajoutée et mise en évidence au bas du bloc de code :

Node.js Modules package json

  • Télécharger les dépendances de développement

Les dépendances de développement sont des paquets utilisés lors du développement du projet et n'ont aucune utilité pour la production ou la maintenance du projet. Bien que ces dépendances puissent sembler inutiles en production, elles jouent un rôle important dans l'écriture et la réécriture du code.

Tout comme les linters de code, les dépendances de développement jouent un rôle essentiel dans le développement de logiciels. La plupart du temps, les développeurs utilisent des linters de code pour maintenir l'uniformité et la cohérence du style pendant le développement du projet, ce qui serait autrement inutile en production.

Installons un linter en tant que dépendance de développement pour votre projet. Utilisez également l'option --save-dev pour enregistrer eslint en tant que dépendance requise pour le développement :

Nous avons ajouté @6.0.0 à notre dépendance afin que, lorsque nous mettons à jour les modules, ils soient étiquetés avec une version. Le symbole @ indiquera à npm de rechercher une balise spécifique que vous souhaitez installer. Maintenant, rouvrez le fichier package.json :

Vous verrez le résultat suivant :

dev package json

  • Fichiers générés automatiquement : node_modules et package-lock.json

Au début, lors de l'installation d'un paquet dans le projet Node.js, les fichiers package.json et package-lock.json sont créés automatiquement. Confirmez la présence de ces fichiers dans le répertoire de travail :

Comme la plupart des dépendances installées sont stockées dans le dossier node_modules dossier, il est conseillé de ne pas soumettre ce dossier dans votre dépôt sous contrôle de version. Avec l'augmentation du nombre de dépendances installées, la taille du node_modules augmente également.

À l'inverse, le package-lock.json fichier conserve un enregistrement des versions exactes installées, il n'est donc pas nécessaire d'inclure node_modules explicitement. Contrairement au node_modules dossier, vous pouvez soumettre ce fichier à votre dépôt sous contrôle de version car il donne une représentation détaillée de toutes vos dépendances ainsi que de leurs versions.

  • Installer en utilisant package.json

Les fichiers package.json et package-lock.json vous permettent de configurer les mêmes dépendances de projet avant de lancer le développement du projet. Naviguez dans votre arborescence de répertoires et créez un nouveau dossier au même niveau de répertoire que le localisateur. Nommez le nouveau dossier cloned_locator:

Ensuite, déplacez-vous vers le cloned_locator:

Importez les fichiers package.json et package-lock.json depuis locator vers cloned_locator:

Le . signifie le dossier actuel. Installez les modules requis à l'aide de la commande suivante :

Au départ, npm vérifiera le fichier package-lock.json pour installer les modules. Si le fichier lock n'est pas disponible, il lit le fichier package.json pour déterminer les installations.

En général, l'installation à partir de package-lock.json est simple car le fichier lock contient la version exacte des modules et de leurs dépendances. Cela signifie que lorsque vous installez en utilisant le package.json, npm économisera le temps supplémentaire nécessaire pour trouver une version compatible et stable.

Ignorez les dépendances de développement en ajoutant la balise --production :

Après cela, retournez au localisateur :

  • Installations globales

Jusqu'à présent, nous avons installé les modules npm localement. Cependant, vous avez également la possibilité d'installer des paquets globalement et de les utiliser via une commande shell ou une CLI. Par exemple, vous pouvez naviguer dans le projet de localisateur actuel en utilisant la bibliothèque Hexo et gérer votre site web statique. Utilisez la commande suivante avec l'option -g pour installer le CLI Hexo globalement :

Remarque : Si vous obtenez une erreur lors de l'installation globale de paquets, essayez cette commande sudo npm i hexo-cli -g  avec les privilèges root.

Utilisez la commande suivante pour vérifier que le paquet a été correctement installé :

Vous verrez le résultat :

hexo version

Étape 3 : Gérer et mettre à jour les modules

Un gestionnaire de paquets fait bien plus que simplement installer des modules Node.js. Il existe de nombreuses options de personnalisation qui vous permettent de lister, mettre à jour, désinstaller ou même ajouter une couche de sécurité à votre convenance.

Dans cette section, nous allons apprendre à :

  1. Lister les modules

  2. Mettre à jour les modules

  3. Désinstaller les modules

  4. Auditer les modules

Discutons de chacun en détail :

  1. Lister les modules

Lister les modules, comme son nom l'indique, vous donnera les détails sur tous les modules installés sur le projet. Au lieu de lire le fichier package.json , vous pouvez utiliser la commande ls ou list pour connaître en détail les modules de votre projet :

Vous verrez le résultat :

npm list op

Par défaut, la commande ls liste l'ensemble de l'arborescence des dépendances, ce qui inclut les dépendances du projet et les modules dont elles dépendent. Cependant, vous pouvez obtenir une vue d'ensemble et cibler explicitement un module spécifique. Utilisez la commande suivante pour vérifier les modules que vous avez installés sans leurs dépendances :

Vous verrez le résultat :

npm list depth zero

  1. Mettre à jour les modules

Il est toujours conseillé de garder vos modules npm à jour afin de ne pas rencontrer de plantages ou de conflits logiciels. Utilisez la commande suivante pour vérifier si une mise à jour est nécessaire :

Vous verrez le résultat :

Outdated

Comprenons chaque terme en détail :

  • Package : Il liste le Package actuel installé dans votre projet.
  • Current : Cela montre la version Current actuelle du paquet.
  • Wanted : Affiche la version npm version qui correspond le mieux à la version requise dans package.json.
  • Dernière version : Il affiche la dernière version de npm publiée que vous devez mettre à jour si nécessaire.
  • Emplacement : Le package Location dans l'arbre des dépendances.

Comme suggéré, nous pouvons mettre à jour notre npm vers une version stable. Utilisez la commande suivante pour mettre à jour votre package actuel :

Vous verrez la sortie suivante :

update eslint

Au lieu de les mettre à jour un par un, vous pouvez également mettre à jour tous les modules en même temps en utilisant la commande up :

  1. Désinstaller des modules

Souvent, une dépendance peut ne pas donner le résultat attendu et vous devez créer une dépendance personnalisée. Dans de tels scénarios, vous avez la possibilité de désinstaller des dépendances de vos fichiers package.json et package-lock.json . Supposons que vous ayez axios comme dépendance et qu'elle ne fournisse pas un résultat satisfaisant. Vous allez sans doute supprimer ce dépôt de votre projet. Utilisez la commande uninstall ou un pour supprimer axios:

Vous verrez la sortie suivante :

Uninstall axios

Bien que la commande uninstall ait supprimé la dépendance, nous n'avons reçu aucune notification de sa suppression. Listons les dépendances pour voir combien nous en avons maintenant :

Vous verrez la sortie sans la dépendance axios dans la liste :

npm list

  1. Auditer les modules

Si les dépendances installées dans votre projet sont exposées à une menace de sécurité potentielle, vous pouvez les détecter. Tout d'abord, vous devez installer une version obsolète du module request pour voir comment fonctionne le module d'audit :

Vous verrez la sortie vous invitant à corriger les menaces ou les vulnérabilités :

add request

Pour obtenir plus de détails sur les vulnérabilités et les menaces, utilisez la commande audit :

Vous verrez un rapport de sécurité détaillé :

Node.js Modules Audit security report

Pour résoudre ces vulnérabilités, utilisez la commande fix :

Vous verrez la sortie suivante :

audit update

Vous avez peut-être remarqué que deux des neuf vulnérabilités ont été corrigées. Cependant, les sept vulnérabilités restantes persistent dans vos dépendances car la commande audit fix ne résout pas tous les problèmes. Afin de résoudre ce problème, vous devrez peut-être mettre à jour votre dépendance vers une version supérieure en utilisant une API différente. Soyez prudent lors de la mise à jour car il est possible que vous brisiez du code plus haut dans l'arbre des dépendances. Utilisez la commande suivante pour confirmer que les vulnérabilités ont disparu :

Soyez prudent lorsque vous utilisez une API différente pour résoudre les menaces de vulnérabilité, car si vous n'êtes pas sûr de vous, cela risque de casser les fonctionnalités du code.

Conclusion

En conclusion, nous avons montré comment utiliser les modules Node.js avec npm et package.json. De plus, nous avons passé en revue les méthodes pour lister, mettre à jour, gérer, auditer et désinstaller les dépendances de nos packages. Comme prochain défi, nous vous encourageons à utiliser les concepts abordés dans ce guide et à expérimenter vous-même l'installation et le test de packages. Vous pouvez également essayer de créer des applications Node.js et de configurer des dépendances pour approfondir votre apprentissage.

En outre, vous trouverez de nombreux autres supports d'apprentissage sur Node.js et JavaScript sur notre blog:

Bon développement !

author

Preslav Dobrev

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.