354 votes

Comment puis-je décider si @ types / * entre dans `dependencies` ou` devDependencies`?

J'ai utiliser la Machine 2 dans mon projet. Je voudrais utiliser certains librairie js, mais aussi typings pour cette bibliothèque. Je peux les installer avec des types simples, npm install @types/some-library. Je ne suis pas sûr si je devrais --save ou --save-dev d'eux. Il me semble que même DefinetelyTyped GitHub readme genre de mentions les deux versions, mais jamais explique. Je pense que @types devraient être en devDependencies, que les types sont nécessaires pour le développement et ne sont pas utilisés dans l'exécution, mais j'ai vu de nombreuses fois @types en seulement dependencies. Je suis confus.

Comment dois-je décider @types/* part en dependencies ou devDependencies? Sont en fait plus ou moins les instructions officielles?

256voto

wookieb Points 146

Supposons que vous développiez un paquet "A" contenant le paquet @ types / some-module dans devDependencies. Pour une raison quelconque, vous exportez le type à partir de @ types / some-module

 import {SomeType} from 'some-module';
export default class APackageClass {
     constructor(private config: SomeType) {

     }
}
 

À l'heure actuelle, les consommateurs de typographie du paquet "A" ne peuvent pas deviner ce qu'est SomeType, car les dépendances devDependencies du paquet "A" ne sont PAS installées.

Dans ce cas particulier, vous devez BESOIN de placer le paquet @ types / * avec des "dépendances" régulières. Pour les autres cas, "devDependencies" suffit.

77voto

Valentin Points 424

Générez-vous un paquet? Si tel est le cas, je vous conseillerais de ne pas perdre trop de temps à débattre de ce qui se passe où. devDependencies et dependencies ne sont significatifs que si vous publiez un paquet pouvant être utilisé par d'autres et que vous ne voulez pas les spammer avec des dépendances inutiles.

Placez-le dans devDependencies . Comme vous l'avez dit "les types sont nécessaires au développement et ne sont pas utilisés au moment de l'exécution" .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X