Vous trouverez dans cet article un résumé des importantes différences au niveau de comportement des dependencies, devDependencies, peerDependencies et optionalDependencies :
dependencies
ce sont les dépendances utiles à un fonctionnement en production et sont installés via les deux commandes :npm install
à partir d'un répertoire qui contient package.jsonnpm install $package
sur n'importe quel autre répertoire (par exemple npm install angular)
devDependencies
: ce sont les dépendances utiles uniquement dans le cadre du développement, par exemple pour exécuter des tests ou s’assurer de la qualité du code ou encore empaqueter le projet :- Sont également installés via
npm install
sur un répertoire contenant package.json, à moins que vous passiez le flag--production
(npm instal --production)
. - ou via npm install $package -D (npm install $package --save-dev) sur n'importe quel autre répertoire.
- Ils ne sont pas installés de manière transitoire (voir définition en bas).
- À titre d'exemple, mocha serait normalement un devDependency, car les tests ne sont pas nécessaires dans la production, par contre express serait une dependency car il est utilisé en production.
- Les dependencies sont nécessaires pour l'exécution du projet, tandis que les devDependencies le sont pour le développement.
- Sont également installés via
peerDependencies
:- Les version 1 et 2 de npm les installent automatiquement si elles ne dépendent pas explicitement de plus haut dans l'arborescence des dépendances. Dans la prochaine version majeure de npm (npm@3), ce ne sera plus le cas. Vous recevrez un avertissement indiquant que peerDependenciy n'est pas installé.
optionalDependencies
:- Si une dépendance peut être utilisée, mais que vous souhaitez que npm procède comme si elle ne peut pas être trouvée ou si vous ne parvenez pas à l'installer, vous pouvez la placer dans l'objet optionalDependencies, cet objet est tout comme l'objet des dependencies, la différence est que les erreurs de build ne provoquent pas l'échec de l'installation.
- Les dependencies sont installées de manière transitoire: si A requiert B, et B nécessite C, alors C est installé, sinon B ne pouvait pas fonctionner, A non plus.
- Les devDependencies ne sont pas installés de manière transitoire. Par exemple. Nous n'avons pas besoin de tester B pour tester A, donc la dépendance au tests de B peut être exclue.
À savoir :
npm install
prend 3 flags exclusifs et optionnels qui enregistrent ou mettent à jour la version du package dans votre package.json principal:- -S, --save: Le paquet apparaîtra dans vos dependencies.
- -D, --save-dev: Le paquet apparaîtra dans vos devDependencies.
- -O, --save-optional: Le paquet apparaîtra dans vos optionalDependencies.
Aucun commentaire:
Enregistrer un commentaire