NPM

npm ou, Node Package Manager, est de loin le plus gros gestionnaire de paquets JavaScript en ligne avec plus d’un million de paquets disponibles. À la base, son rôle consistait à télécharger et gérer les dépendances d’un projet Node.js. Cependant, avec le temps il est aussi devenu un outil permettant de gérer ses dépendances JavaScript du côté client.

Il est probable que vous, vous soyez déjà dit:
« Je ne suis sûrement pas le premier à vouloir faire X en JavaScript? »

Et vous aviez probablement raison! C’est exactement la problématique que tente de régler npm en permettant d’inclure des scripts déjà réalisés par d’autres développeurs à même son propre code. Ces dits scripts sont alors appelés paquets et permettent d’éviter de réinventer la roue à chaque fois qu’une fonctionnalité doit-être ajoutée.

Pour presque tous vos besoins en JavaScript, vous pouvez trouver une solution sur npm!

Distinction

Vous vous questionnez sans doute:
🤔 « Mais ce n'est pas exactement la définition de que qu'est une librairie JavaScript comme on a parlé à la dernière session? Quelle est donc la différence? »



En effet! Voici quelques définitions librement traduites de l'article cité plus ba:.

  • Un module JavaScript est simplement un fichier JavaScript isolé exécutant une fonctionnalité spécifique.
  • Une librairie JavaScript est un code réutilisable qui fournit une fonctionnalité bien testée par le biais d'une interface bien définie. Elle peut contenir un ou plusieurs modules.
  • Un paquet JavaScript est la forme compilée de la librairie prête à être distribuée. Un paquet contient principalement le code source, le code de distribution, la documentation, des exemples, des exécutables, une suite de tests, des métadonnées (comme le numéro de version), etc.
  • Un gestionnaire de paquets stocke toutes les versions de paquets sous une forme compressée dans un registre en ligne. Pour JavaScript, npm est le gestionnaire de paquets et le registre par défaut.
JavaScript: Difference Between Module, Library, Package Installation de Node.js

D'abord installez node.js.

Pour vérifier son installation sur un poste ou simplement pour voir son numéro de version, il est possible de taper dans un terminal la commande:

> node -v

-v comme dans "version".

S'il n'est pas installé, il est conseillé de l'installer via un Node Version Manager.

Installation de NPM

npm est automatiquement installé avec Node.js. Il n’est donc pas nécessaire de l’installer.

Pour vérifier son installation sur un poste ou simplement pour voir son numéro de version, il est possible de taper dans un terminal la commande:

> npm -v

-v comme dans "version".

Version NPM Package.json

Pour utiliser npm, il faut premièrement créer un fichier package.json à la racine dudit projet. Ce fichier permet de stocker des informations relatives au projet. Notamment: son nom, son auteur, son numéro de version, etc. mais surtout les dépendances JavaScript nécessaires à son fonctionnement.

Pour créer ce fichier, il faut ouvrir le dossier du projet dans un terminal.

La façon la plus simple d’ouvrir un terminal à même le dossier d’un projet est d’ouvrir le dossier du projet dans Visual Studio Code et d’ouvrir un terminal à partir de VsCode. Le terminal sera alors ouvert par défaut dans le dossier du projet.

Lancer ensuite la commande:

> npm init

Et répondez aux diverses questions posées.

Si vous n’êtes pas certains des réponses à offrir ou désirez accélérer ce processus, il est possible de créer un fichier package.json avec les valeurs par défaut en utilisant la commande:

> npm init -y Il sera toujours possible de modifier ces valeurs plus tard directement dans le fichier package.json. Init NPM Trouver des paquets

Afin de trouver des paquets pouvant s'avérer utiles, le mieux est de se rendre sur le site npmjs.com contenant un registre de tous les paquets disponibles.

Par exemple, tenter de trouver le paquet correspondant à la librairie lodash.

Vous devriez alors trouver une page séparée en deux colonnes vous présentant le paquet trouvé. Dans la colonne de gauche ◀️ une description du paquet est normalement présente tandis que dans la colonne de droite ▶️ se trouve:

  1. Un bouton permettant de copier la commande d'installation du paquet
  2. L'URL du répertoire GitHub (si existant)
  3. Le site web du paquet (si existant)
  4. Son nombre de téléchargements par semaine
  5. Son numéro de version
  6. Sa date de mise à jour
  7. etc.
Ajouter des paquets

Pour ajouter un paquet dans un projet, il suffit de lancer la commande npm i, suivie du nom du paquet désiré.

Par exemple, afin d'installer lodash dans un projet, il suffit de taper la commande:

> npm i lodash

i comme dans "install".

Remarquez l'ajout d'un dossier intitulé "nodes_modules" à la racine de votre projet. Ce dossier contient les paquets que vous avez téléchargés.

Vous remarquerez aussi que dans votre fichier package.json qu'un objet "dependencies" fut ajouté et que celui-ci contient maintenant une référence à lodash et a son numéro de version.

Install packages Retirer un paquet

Si un paquet n'est pas utilisé ou si vous l'avez ajouté par erreur, il est possible de le retirer en lançant la commande npm r, suivi du nom du paquet désiré.

Par exemple, afin de désinstaller lodash dans un projet, la commande à lancer est:

> npm r lodash

r comme dans "remove".

Le paquet est alors retiré du dossier "node_modules" et sa référence dans le fichier package.json est retirée.

Uninstall packages Voir les paquets installés

Afin de voir quels paquets sont installés dans un projet, il est possible d'aller jeter un coup d'oeil 👁 dans le fichier package.json ou encore de lancer la commande:

> npm ls

ls comme dans "list".

List packages Mettre à jour ses paquets

.npm mentionne toujours dans le fichier package.json la version du paquet installé. Ainsi, il est possible voir si la version installée est la plus récente. Ce détail peut sembler anodin, mais il est parfois important, puisqu'il permet de savoir si certaines fonctionnalités ou bugs sont présents dans notre projet.

Pour mettre à jour tous les paquets d'un projet, la commande à effectuer est:

> npm update

Pour mettre à jour un paquet spécifiquement, il faut simplement ajouter le nom de ce paquet à notre commande.

Par exemple, pour mettre à jour lodash:

> npm update lodash Update packages Travail d'équipe sur GitHub

Dans le cadre d'un travail d'équipe, il est courant de partager un fichier package.json sur son répertoire GitHub. Cependant, le dossier "node_modules" n'est normalement pas inclus sur celui-ci afin d'éviter de ralentir Git et de créer des conflits inutiles.

Le fichier .gitignore à la racine du projet se charge d’éviter que des fichiers se retrouvent sur son répertoire Git. Le dossier "node_modules" est systématiquement listé dans ce fichier.

Si un coéquipier ajoute un paquet?

Votre fichier package.json se mettra à jour dès que vous ferez un pull. Malheureusement, les fichiers du paquet n'apparaitront pas magiquement dans votre dossier "node_modules". Pour les ajouter, il faudra alors rouler la commande npm i.

Normalement, le membre de l'équipe ayant ajouté un ou des paquets le fait savoir à ses coéquipiers en inscrivant en majuscules dans son commit la commande à rouler "NPM I" et averti ses coéquipiers.

Si un coéquipier retire un paquet?

Encore une fois, votre fichier package.json se mettra à jour dès que vous ferez un pull. Cependant les fichiers resteront dans votre dossier "node_modules". Heureusement, npm à prévue la commande prune qui permet de comparer les paquets listés dans le fichier package.json et ceux dans le dossier "node_modules" et tout paquet non présent dans le fichier package.json est alors retiré.

Normalement, le membre d'équipe ayant retiré un ou des paquets le fait savoir à ses coéquipiers en inscrivant en majuscules dans son commit la commande à rouler "NPM PRUNE" et averti ses coéquipiers.

Prune packages

Si un coéquipier met un paquet à jour?

Votre fichier package.json se mettra à jour dès que vous ferez un pull. Cependant, la copie téléchargée dans votre dossier "node_modules" restera la même, puisque ce dossier est ignoré par Git. Il faut donc lancer la commande de mise à jour npm update.

Normalement, le membre d'équipe ayant mis à jour un ou des paquets le fait savoir à ses coéquipiers en inscrivant en majuscules dans son commit la commande à rouler "NPM UPDATE" et averti ses coéquipiers.

Alternatives
OUTIL Yarn Yarn est l'un des principaux gestionnaires de paquets JavaScript, développé en 2016 par Facebook pour l'environnement d'exécution JavaScript Node.js.
OUTIL pnPM Fast, disk space efficient package manager.
OUTIL Bower Web sites are made of lots of things — frameworks, libraries, assets, and utilities. Bower manages all these things for you.