Comment ignorer un répertoire ou un fichier particulier pour tslint?

135

L'EDI utilisé est WebStorm 11.0.3, le tslint est configuré et fonctionne, mais il se bloque car il tente d'analyser les fichiers de bibliothèque * .d.ts volumineux.

Existe-t-il un moyen d'ignorer un fichier ou un répertoire particulier?

user3330840
la source

Réponses:

200

Mise à jour pour tslint v5.8.0

Comme mentionné par Saugat Acharya , vous pouvez maintenant mettre à jour les options CLI tslint.json :

{
  "extends": "tslint:latest",
  "linterOptions": {
      "exclude": [
          "bin",
          "lib/*generated.js"
      ]
  }
}

Plus d'informations dans cette pull request .


Cette fonctionnalité a été introduite avec tslint 3.6

tslint \"src/**/*.ts\" -e \"**/__test__/**\"

Vous pouvez maintenant ajouter --exclude (ou -e) voir PR ici.

CLI

usage: tslint [options] file ...

Options:

-c, --config          configuration file
--force               return status code 0 even if there are lint errors
-h, --help            display detailed help
-i, --init            generate a tslint.json config file in the current working directory
-o, --out             output file
-r, --rules-dir       rules directory
-s, --formatters-dir  formatters directory
-e, --exclude         exclude globs from path expansion
-t, --format          output format (prose, json, verbose, pmd, msbuild, checkstyle)  [default: "prose"]
--test                test that tslint produces the correct output for the specified directory
-v, --version         current version

vous envisagez d'utiliser

-e, --exclude         exclude globs from path expansion
Michael
la source
savez-vous comment exclure plusieurs chemins?
Juan Henao
4
répétez l'argument d'exclusion plusieurs fois
Markus Wagner
4
Petite correction à la mise à jour: ça devrait être linterOptionset noncliOptions
JeB
4
Il convient également de mentionner que les modèles glob à l'intérieur du répertoire d'exclusion doivent être relatifs autslint.json
JeB
64

Vous utilisez actuellement Visual Studio Code et la commande pour désactiver tslint est

/* tslint:disable */

travaillé pour moi. Consultez cette page, environ 3/4 de la descente, il y a des commandes de désactivation https://c9.io/lijunle/tslint

Quelque chose à noter. La désactivation ci-dessus désactive TOUTES les règles tslint sur cette page. Si vous souhaitez désactiver une règle spécifique au milieu de la page, il existe une liste de règles. Ainsi, vous pouvez désactiver des éléments spécifiques tels que

/* tslint:disable comment-format */
DeadlyChambres
la source
1
de toutes les réponses, c'est la seule qui a fonctionné. Merci!
Oz Lodriguez
27

En plus de la réponse de Michael, envisagez une deuxième méthode: ajouter linterOptions.exclude à tslint.json

Par exemple, vous pouvez avoir tslint.jsonavec les lignes suivantes:

{
  "linterOptions": {
    "exclude": [
      "someDirectory/*.d.ts"
    ]
  }
}
Arkhwise
la source
17

À partir de, tslint v5.8.0vous pouvez définir une excludepropriété sous votre linterOptionsclé dans votre tslint.jsonfichier:

{
  "extends": "tslint:latest",
  "linterOptions": {
      "exclude": [
          "bin",
          "**/__test__",
          "lib/*generated.js"
      ]
  }
}

Plus d'informations à ce sujet ici .

Saugat
la source
2
Cela doit être marqué comme la réponse correcte (et mise à jour en novembre 2017).
Andres Elizondo
La bonne façon de procéder est de remplacer cliOptionspar linterOptions.
Saugat
7

J'ai dû utiliser la syntaxe ** / * pour exclure les fichiers d'un dossier:

    "linterOptions": {
        "exclude": [
          "src/auto-generated/**/*",
          "src/app/auto-generated/**/*"
        ]
    },
techguy2000
la source
5

linterOptions n'est actuellement géré que par la CLI. Si vous n'utilisez pas la CLI, en fonction de la base de code que vous utilisez, vous devrez définir l'ignorer ailleurs. webpack, tsconfig, etc.

Kris
la source
3

Peut confirmer que sur la version tslint 5.11.0, cela fonctionne en modifiant le script lint dans package.json en définissant l'argument d'exclusion:

"lint": "ng lint --exclude src/models/** --exclude package.json"

À votre santé!!

Sanid Sa
la source
1
Faisiez-vous référence à une autre réponse ou vouliez-vous simplement fournir une réponse alternative à la question?
Dharman
1

En complément

Pour désactiver toutes les règles pour la ligne suivante // tslint:disable-next-line

Pour désactiver des règles spécifiques pour la ligne suivante :// tslint:disable-next-line:rule1 rule2...

Pour désactiver toutes les règles de la ligne actuelle :someCode(); // tslint:disable-line

Pour désactiver des règles spécifiques pour la ligne actuelle :someCode(); // tslint:disable-line:rule1

AlbertK
la source