Une dépendance est un morceau de code – une bibliothèque, un module ou un paquetage – dont un projet a besoin pour fonctionner correctement.


Dans Node.js, les dépendances et les devDependencies sont des catégories de paquets que vous pouvez définir dans votre fichier package.json pour gérer les dépendances de votre projet. Découvrez leurs différences et apprenez à les utiliser dans vos projets.

Les dépendances régulières dans un projet npm

Les dépendances régulières – ou, plus simplement, les dépendances – sont des paquets dont votre application a besoin pour fonctionner comme prévu à l’exécution et dans les environnements de production.

Les dépendances peuvent inclure :

  • Des bibliothèques externes qui offrent des fonctionnalités prédéfinies, telles que lodash.
  • Les frameworks qui fournissent une base ou une structure pour construire des applications, comme Express ou React.
  • Pilotes de base de données, tels que MongoDB ou sqlite3.
  • Paquets qui aident dans les tâches liées au réseau, comme Axios ou Socket.io.

Par exemple, si vous construisez une API CRUD avec Express.js, express sera l’une de vos dépendances car votre serveur en a besoin pour fonctionner.

Pour installer les dépendances d’exécution, vous pouvez utiliser un gestionnaire de paquets comme npm, le gestionnaire de paquets Node, ou Yarn.

Les dépendances existent sous l’objet dependencies dans un fichier package.json. L’objet dependencies stocke les noms et les versions des paquets.

Pour installer un paquet en tant que dépendance à l’aide de NPM, exécutez la commande ci-dessous :

 npm install <package-name>

La commande ci-dessus installe le paquetage et l’enregistre en tant que dépendance de votre projet dans le fichier package.json:

 // package.json

"dependencies": {
    "package-name": "^package-version",
}

Lorsque vous clonez un projet à partir d’un dépôt web, vous pouvez installer les dépendances en exécutant la commande ci-dessous :

 npm install

Lorsque vous exécutez la commande ci-dessus, votre gestionnaire de paquets lit le fichier package.json et installe les dépendances et devDependencies spécifiées à partir du registre des paquets.

Dépendances de développement et leur utilisation

Les dépendances de développement – ou devDepenendencies – sont des paquets dont votre application a besoin uniquement pendant le processus de développement. En d’autres termes, ils ne sont pas nécessaires en production.

Les dépendances devDependencies peuvent inclure :

  • Les frameworks de test, tels que Jest ou Mocha.
  • Test Runners, tels que Chai.
  • Linters et formateurs, tels que Eslint.
  • Outils de documentation, tels que Swagger.

Un exemple courant de devDepenedency est le paquet Nodemon, qui redémarre votre serveur lorsqu’il détecte des changements dans vos scripts.

Vous pouvez définir les devDependencies dans la section devDependencies L’objet dans un package.json fichier. Cet objet contient les noms et les versions des paquets.

Vous pouvez installer un paquet en tant que devDependency en exécutant cette commande :

 npm install <package-name> --save-dev

Vous pouvez également installer un paquet en tant que devDependency en exécutant cette commande :

 npm install -D <package-name>

La commande ci-dessus installe et enregistre le paquetage dans votre fichier package.json comme suit :

 // package.json
"devDependencies": {
    "package-name": "^package-version"
}

Lorsque vous clonez un projet à partir d’un référentiel web, l’exécution de la commande npm install installera également les dépendances (devDependencies).

Cependant, l’exécution de la commande avec l’option production n’installe que les dépendances.

Par exemple :

 npm install --production

Lorsque vous exécutez la commande ci-dessus, votre gestionnaire de paquets lit le fichier package.json et installe les dépendances de votre application à partir du registre des paquets.

Vous pouvez également définir l’option NODE_ENV variable to « production« pour obtenir les mêmes résultats.

Autres types de dépendances

Outre les dépendances et les devDependencies, Node.js classe également les paquets dans les catégories suivantes peerDepenecies et optionalDependencies.

Dépendances des pairs

Les dépendances entre pairs sont des dépendances qu’un paquetage utilise lorsqu’il s’attend à ce qu’une version spécifique ou une version compatible d’un autre paquetage soit présente dans l’application qui l’utilise.

L’objectif des dépendances homologues est de garantir qu’un paquetage fonctionne correctement avec ses dépendances et d’éviter les conflits ou les problèmes de compatibilité.

Pour les versions de npm inférieures à v7, les dépendances homologues ne sont pas automatiquement installées. Au contraire, le code qui inclut le paquetage doit l’inclure en tant que dépendance. Si le paquet ne l’inclut pas, npm lèvera un avertissement.

Ils existent sous le nom de peerDependencies dans le fichier package.json :

 "peerDependencies": {
    "package": "^version"
}

Dépendances optionnelles

Les dépendances optionnelles sont des paquets qui ne sont pas essentiels à la fonctionnalité de base d’un projet, mais qui peuvent améliorer ses capacités s’ils sont disponibles.

Les dépendances optionnelles n’étant pas nécessaires au bon fonctionnement du projet, vous pouvez les omettre lors de l’installation.

L’exécution de la commande ci-dessous permet d’ignorer les dépendances optionnelles pendant le processus d’installation :

 npm install --omit=optional

Elles existent sous le nom de dépendances optionnelles dans le fichier package.json :

 "optionalDependencies": {
    "package": "^version"
}

Catégories Facilitez la gestion de vos dépendances

Comprendre, gérer et catégoriser efficacement les dépendances permet d’assurer une séparation claire entre les paquets nécessaires à la production et ceux qui ne sont nécessaires qu’au développement.

Cette distinction permet une gestion efficace des dépendances, un regroupement adéquat et un déploiement rationalisé de votre projet.