Jak zignorować określony katalog lub plik dla tslint?

135

Używane IDE to WebStorm 11.0.3, tslint jest skonfigurowany i działa, ale zawiesza się, ponieważ próbuje przeanalizować duże pliki bibliotek * .d.ts.

Czy istnieje sposób na zignorowanie określonego pliku lub katalogu?

user3330840
źródło

Odpowiedzi:

200

Aktualizacja dla tslint v5.8.0

Jak wspomniał Saugat Acharya , możesz teraz zaktualizować opcje tslint.json CLI:

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

Więcej informacji w tym żądaniu ściągnięcia .


Ta funkcja została wprowadzona w tslint 3.6

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

Możesz teraz dodać --exclude (lub -e) zobacz PR tutaj.

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

patrzysz na używanie

-e, --exclude         exclude globs from path expansion
Michael
źródło
czy wiesz, jak wykluczyć wiele ścieżek?
Juan Henao
4
powtórz kilka razy argument wykluczający
Markus Wagner
4
Mała poprawka do aktualizacji: powinno być, linterOptionsa niecliOptions
JeB
4
Warto również wspomnieć, że wzorce glob w katalogu wykluczeń powinny odnosić się dotslint.json
JeB
64

Obecnie używasz programu Visual Studio Code i polecenia wyłączającego tslint

/* tslint:disable */

pracował dla mnie. Sprawdź tę stronę, około 3/4 drogi w dół znajduje się kilka poleceń wyłączających https://c9.io/lijunle/tslint

Coś do zapamiętania. Powyższe wyłączenie wyłącza WSZYSTKIE reguły tslint na tej stronie. Jeśli chcesz wyłączyć określoną regułę w połowie strony, jest lista reguł. Możesz więc wyłączyć określone rzeczy, takie jak

/* tslint:disable comment-format */
DeadlyChambers
źródło
1
ze wszystkich odpowiedzi jest to jedyna, która zadziałała. dzięki!
Oz Lodriguez
27

Oprócz odpowiedzi Michaela rozważ drugi sposób: dodanie linterOptions.exclude do tslint.json

Na przykład możesz mieć tslint.jsonnastępujące linie:

{
  "linterOptions": {
    "exclude": [
      "someDirectory/*.d.ts"
    ]
  }
}
arkhwise
źródło
17

Począwszy od tego tslint v5.8.0, możesz ustawić excludewłaściwość pod linterOptionskluczem w swoim tslint.jsonpliku:

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

Więcej informacji na ten temat tutaj .

Saugat
źródło
2
Powinno to być oznaczone jako poprawna (i zaktualizowana w listopadzie 2017 r.) Odpowiedź.
Andres Elizondo
Poprawny sposób to zrobić, aby wymienić cliOptionssię linterOptions.
Saugat
7

Musiałem użyć składni ** / *, aby wykluczyć pliki w folderze:

    "linterOptions": {
        "exclude": [
          "src/auto-generated/**/*",
          "src/app/auto-generated/**/*"
        ]
    },
techguy2000
źródło
5

linterOptions jest obecnie obsługiwane tylko przez CLI. Jeśli nie używasz interfejsu CLI, w zależności od używanej bazy kodu musisz ustawić ignorowanie w innym miejscu. webpack, tsconfig itp

Kris
źródło
3

Potwierdza, że ​​w wersji tslint 5.11.0 działa, modyfikując skrypt lint w pliku package.json, definiując argument wykluczający:

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

Twoje zdrowie!!

Sanid Sa
źródło
1
Czy odnosiłeś się do jakiejś innej odpowiedzi, czy po prostu chciałeś udzielić alternatywnej odpowiedzi na pytanie?
Dharman
1

Jako dodatek

Aby wyłączyć wszystkie reguły dla następnej linii // tslint:disable-next-line

Aby wyłączyć określone reguły dla następnego wiersza :// tslint:disable-next-line:rule1 rule2...

Aby wyłączyć wszystkie reguły dla bieżącej linii :someCode(); // tslint:disable-line

Aby wyłączyć określone reguły dla bieżącej linii :someCode(); // tslint:disable-line:rule1

AlbertK
źródło