Node.js : faut-il utiliser les dépendances ou DevDependencies ?

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. Explorez leurs différences et apprenez à les utiliser dans vos projets.

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 au moment de l’exécution et dans les environnements de production.

Les dépendances peuvent inclure :

  • Des bibliothèques externes qui offrent des fonctionnalités préconstruites, telles que lodash.
  • Des frameworks qui fournissent une base ou une structure pour la construction d’applications, comme Express ou React.
  • Pilotes de base de données, tels que MongoDB ou sqlite3.
  • Les 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 :

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

Voir aussi :  Comment générer une nouvelle clé secrète dans Django

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

Lorsque vous exécutez la commande ci-dessus, votre gestionnaire de paquets lit le fichier package.json et installe les dépendances et les 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 de développement peuvent inclure :

  • Des cadres de test, tels que Jest ou Mocha.
  • Exécutants de test, 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 modifications dans vos scripts.

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

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

Vous pouvez également installer un paquetage en tant que dépendance devDependency en exécutant cette commande :

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

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

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

Par exemple :

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

Voir aussi :  Comment utiliser CSS pour changer la couleur de la police

Vous pouvez également définir le fichier NODE_ENV à « 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 :

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.

Comme les dépendances optionnelles ne sont 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 au cours du processus d’installation :

Elles existent dans le répertoire dépendances optionnelles dans le fichier package.json :

Les catégories facilitent la gestion des 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 cours du développement.

Voir aussi :  9 langages de programmation en voie d'extinction

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

Quelle est la différence entre une dépendance et un paquetage ?

Les dépendances sont les paquets dont votre projet dépend. Mais les dépendances peuvent avoir différentes fonctions. Par exemple, vous pouvez avoir besoin d’une dépendance pour construire votre projet, d’une autre pour l’exécuter, d’une autre pour le tester, etc. C’est pourquoi, dans un paquet.

Quels sont les paquets qui devraient être des dépendances dev ?

Les devDependencies devraient contenir des paquets qui sont utilisés pendant le développement ou qui sont utilisés pour construire votre bundle, par exemple, mocha, jscs, grunt-contrib-watch, gulp-jade et etc.

Est-ce que npm install installe aussi les dépendances de développement ?

Par défaut, npm install installera tous les modules listés comme dépendances dans package.json . Avec l’option –production (ou lorsque la variable d’environnement NODE_ENV est définie sur production ), npm n’installera pas les modules listés dans devDependencies .

Quelle est la différence entre devDependencies et peer dependencies ?

En bref, les devDependencies sont pour les choses utilisées dans l’environnement de développement, comme les tests unitaires et les outils de construction, tandis que les peerDependencies sont pour les bibliothèques dont votre paquet dépend mais qui sont destinées à être fournies par le consommateur de votre paquet.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *