web-dev-qa-db-fra.com

eslint doit être répertorié dans les dépendances du projet, pas dans devDependencies

Soit je ne comprends pas encore dependencies contre devDependencies dans le nœud 100% ou bien eslint est tout simplement faux ici (incapable d'analyser cela correctement):

   3:1   error  'chai' should be listed in the project's dependencies, not devDependencies              import/no-extraneous-dependencies
   4:1   error  'chai-enzyme' should be listed in the project's dependencies, not devDependencies       import/no-extraneous-dependencies
   5:1   error  'enzyme' should be listed in the project's dependencies, not devDependencies            import/no-extraneous-dependencies
   7:1   error  'sinon' should be listed in the project's dependencies, not devDependencies             import/no-extraneous-dependencies
   9:1   error  'redux-mock-store' should be listed in the project's dependencies, not devDependencies  import/no-extraneous-dependencies

Ce sont des dépendances de test, alors pourquoi dit-on qu'elles devraient être listées dans dependencies?

Note supplémentaire: Nous utilisons Travis comme notre IC, donc je ne sais pas si cela fait une différence pour cela non plus.

31
PositiveGuy

Résolu en ajoutant ceci à mon .eslintrc:

"import/no-extraneous-dependencies": ["error", {"devDependencies": true}]

[no-extraneous-dependencies] Ajouter des exceptions? # 422

Basé sur la réponse de cet utilisateur :

vous pouvez définir l'option devDependencies: true dans un fichier .eslintrc de votre dossier de test:

rules: import/no-extraneous-dependencies: [erreur, {devDependencies: true}] Ensuite, vous obtiendrez des rapports sur tous les packages référencés qui ne sont pas des dépendances incluses ou devDependencies. Ensuite, vous obtenez le bénéfice de la règle, sans aucun bruit provenant des commentaires de désactivation .

Je pense que cela pourrait fonctionner pour vous? C'est ainsi que j'utiliserais la règle, dans votre cas, puisque votre code de test est séparé dans un répertoire de test.

Cet article a également été utile pour confirmer que je n'étais pas fou de ne pas vouloir certaines d'entre elles dans ma liste de dépendances : Sharable ESLint Config =

54
PositiveGuy

Si vous souhaitez autoriser les importations de devDependencies dans les fichiers de test uniquement , vous pouvez utiliser un array of globs, comme documentation de no-extraneous-dependencies États:

Lors de l'utilisation d'un tableau de globs, le paramètre sera défini sur true (aucune erreur signalée) si le nom du fichier en cours de filtrage correspond à un seul glob du tableau et sur false sinon.

Le paramètre suivant désactivera la charpie pour les fichiers de test uniquement.

"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.ts", "**/*.test.tsx"]}]

De cette façon, les importations de devDependencies sont toujours signalées comme des erreurs.

9
magic_al