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. Cesdits 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!

Installation

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".

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.

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

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.

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.

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".

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

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.

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.

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