web-dev-qa-db-fra.com

Faire en sorte qu'ESLint applique des règles à certains modèles de nom de fichier uniquement

Est-il possible de configurer ESLint de manière à n'appliquer des règles qu'aux fichiers dont les noms correspondent à certains modèles? Je sais qu'il est possible d'avoir des feuilles de règles séparées dans les répertoires, mais au cas où la structure serait la suivante:

app
|
|- module1
|     |- module1.js
|     |- module1.spec.js
|
|- module2
|     |- module2.js
|     |- module2.spec.js

Et je veux des règles à l'échelle du projet qui ne s'appliqueraient qu'aux fichiers * .spec.js. Je m'attendrais à avoir un réglage comme

"include-pattern": "*.spec.js"

dans le .eslintrc ou tout autre moyen similaire de spécifier les noms de fichiers à prendre en compte pour des règles spécifiques.

30
wap300

Réponse mise à jour:

Oui, maintenant c'est possible. Dans votre exemple, cela pourrait ressembler à

{
  "rules": {
    "quotes": [ 2, "double" ]
  },

  "overrides": [
    {
      "files": [ "app/module1/*.js" ],
      "excludedFiles": "*.spec.js",
      "rules": {
        "quotes": [ 2, "single" ]
      }
    }
  ]
}

Vous pouvez en savoir plus sur page doc eslint .

Ancienne réponse:

Actuellement, cela n'est pas pris en charge. Mais pour 2.0.0 version, nous travaillons activement sur cette fonctionnalité.

Pour suivre les progrès: https://github.com/eslint/eslint/issues/3611

33
Gyandeep

Une solution temporaire consiste à utiliser .eslintignore fichier avec quelque chose comme ça à l'intérieur:

*.js !*.spec.js

4
tibalt