NPM 包管理器简介

Contributeurs
Table des matières
Gardez à l'esprit qu'il s'agit d'une brève introduction à NPM. Pour un guide plus approfondi, consultez le NPM documentation.

Introduction à npm

npm est le gestionnaire de paquets standard pour Node.js.

En septembre 2022, plus de 2,1 millions de paquets ont été répertoriés dans le registre npm, ce qui en fait le plus grand dépôt de code monolingue sur Terre, et vous pouvez être sûr qu'il y a un paquet pour (presque !) tout.

Il a commencé comme un moyen de télécharger et de gérer les dépendances des paquets Node.js, mais il est depuis devenu un outil utilisé également dans le JavaScript frontal.

Yarn et pnpm sont des alternatives à npm cli. Vous pouvez également les consulter.

Paquets

npm gère les téléchargements des dépendances de votre projet.

Installer toutes les dépendances

Si un projet a un fichier package.json, en exécutant

BASH

il installera tout ce dont le projet a besoin, dans le dossier node_modules, en le créant s'il n'existe pas déjà.

Installation d'un seul paquetage

You can also install a specific package by running

BASH

De plus, depuis npm 5, cette commande ajoute <package-name> au fichier package.json dependencies. Avant la version 5, vous deviez ajouter le flag --save.

Vous verrez souvent d'autres drapeaux ajoutés à cette commande :

  • --save-dev installe et ajoute l'entrée au fichier package.json devDependencies.
  • --no-save installe mais n'ajoute pas l'entrée au fichier package.json dependencies.
  • --save-optional installe et ajoute l'entrée au fichier package.json optionalDependencies.
  • --no-optional empêche l'installation des dépendances optionnelles.

Des raccourcis des drapeaux peuvent également être utilisés :

  • -S : --save
  • -D : --save-dev
  • -O : --save-optional (enregistrement facultatif)

La différence entre devDependencies et dependencies est que le premier contient des outils de développement, comme une bibliothèque de test, tandis que le second est fourni avec l'application en production.

Quant à optionalDependencies, la différence est que l'échec de la construction de la dépendance ne fera pas échouer l'installation. Mais c'est à votre programme qu'il incombe de gérer l'absence de cette dépendance. En savoir plus sur dépendances optionnelles.

Mise à jour des paquets

La mise à jour est également facilitée par l'exécution de

BASH

npm vérifiera tous les paquets pour une version plus récente qui satisfasse vos contraintes de versionnement.

Vous pouvez également spécifier un seul paquet à mettre à jour :

BASH

Versioning

En plus des simples téléchargements, npm gère également le versioning, de sorte que vous pouvez spécifier une version spécifique d'un paquet, ou demander une version supérieure ou inférieure à celle dont vous avez besoin.

Souvent, vous découvrirez qu'une bibliothèque n'est compatible qu'avec une version majeure d'une autre bibliothèque.

Ou bien un bogue dans la dernière version d'une bibliothèque, toujours non corrigé, cause un problème.

Spécifier une version explicite d'une bibliothèque permet également de garder tout le monde sur la même version exacte d'un paquet, de sorte que toute l'équipe exécute la même version jusqu'à ce que le fichier package.json soit mis à jour.

Dans tous ces cas, le versioning est très utile, et npm suit le standard du versioning sémantique (semver).

Vous pouvez installer une version spécifique d'un paquet, en exécutant

BASH

Exécution des tâches

Le fichier package.json prend en charge un format permettant de spécifier des tâches en ligne de commande qui peuvent être exécutées à l'aide de la commande

BASH

Par exemple :

JSON

Il est très courant d'utiliser cette fonctionnalité pour exécuter Webpack :

JSON

Ainsi, au lieu de taper ces longues commandes, qui sont faciles à oublier ou à mal saisir, vous pouvez exécuter

BASH