Làm thế nào để bỏ qua một thư mục hoặc tập tin cụ thể cho tslint?


135

IDE đang được sử dụng là WebStorm 11.0.3, tslint được cấu hình và hoạt động, nhưng, nó bị treo vì nó cố phân tích các tệp thư viện * .d.ts lớn.

Có cách nào để bỏ qua một tập tin hoặc thư mục cụ thể?

Câu trả lời:


200

Cập nhật cho tslint v5.8.0

Như Saugat Acharya đã đề cập , giờ đây bạn có thể cập nhật Tùy chọn CLI tslint.json :

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

Thêm thông tin trong yêu cầu kéo này .


Tính năng này đã được giới thiệu với tslint 3.6

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

Bây giờ bạn có thể thêm --exclude (hoặc -e) xem PR tại đây.

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

bạn đang xem bằng cách sử dụng

-e, --exclude         exclude globs from path expansion

Bạn có biết làm thế nào để loại trừ nhiều đường dẫn?
Juan Henao

4
lặp lại đối số loại trừ nhiều lần
Markus Wagner

4
Sửa lỗi nhỏ cho bản cập nhật: nên linterOptionsvà khôngcliOptions
JeB

4
Cũng đáng để đề cập rằng các mẫu hình cầu trong thư mục loại trừ sẽ liên quan đếntslint.json
JeB

64

Hiện đang sử dụng Visual Studio Code và lệnh để vô hiệu hóa tslint là

/* tslint:disable */

đã làm cho tôi. Kiểm tra trang này, khoảng 3/4 đường xuống có một số lệnh vô hiệu hóa https://c9.io/lijunle/tslint

Một vài điều cần lưu ý. Việc vô hiệu hóa ở trên sẽ vô hiệu hóa TẤT CẢ các quy tắc tấn công trên trang đó. Nếu bạn muốn vô hiệu hóa một quy tắc cụ thể ở nửa trang, có một danh sách các quy tắc. Vì vậy, bạn có thể tắt những thứ cụ thể như

/* tslint:disable comment-format */

1
từ tất cả các câu trả lời, đây là người duy nhất làm việc. cảm ơn!
Oz Lodriguez

27

Ngoài câu trả lời của Michael, hãy xem xét một cách thứ hai: thêm linterOptions.exclude vào tslint.json

Ví dụ: bạn có thể có tslint.jsoncác dòng sau:

{
  "linterOptions": {
    "exclude": [
      "someDirectory/*.d.ts"
    ]
  }
}

17

Bắt đầu từ tslint v5.8.0bạn có thể đặt excludethuộc tính dưới linterOptionskhóa của mình trong tslint.jsontệp của mình :

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

Thêm thông tin về điều này ở đây .


2
Điều này nên được đánh dấu là câu trả lời đúng (và cập nhật vào tháng 11 năm 2017).
Andres Elizondo

Cách chính xác để làm điều này là thay thế cliOptionsbằng linterOptions.
Saugat


7

Tôi đã phải sử dụng cú pháp ** / * để loại trừ các tệp trong một thư mục:

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

5

linterOptions hiện chỉ được xử lý bởi CLI. Nếu bạn không sử dụng CLI thì tùy thuộc vào cơ sở mã bạn đang sử dụng, bạn sẽ cần đặt bỏ qua ở một nơi khác. webpack, tsconfig, v.v.


3

Có thể xác nhận rằng trên phiên bản tslint 5.11.0, nó hoạt động bằng cách sửa đổi tập lệnh lint trong pack.json bằng cách xác định loại trừ đối số:

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

Chúc mừng !!


1
Bạn đã đề cập đến một số câu trả lời khác, hoặc bạn chỉ đơn giản muốn cung cấp một câu trả lời thay thế cho câu hỏi?
Dharman

1

Ngoài ra

Để vô hiệu hóa tất cả các quy tắc cho dòng tiếp theo // tslint:disable-next-line

Để vô hiệu hóa các quy tắc cụ thể cho dòng tiếp theo :// tslint:disable-next-line:rule1 rule2...

Để vô hiệu hóa tất cả các quy tắc cho dòng hiện tại :someCode(); // tslint:disable-line

Để vô hiệu hóa các quy tắc cụ thể cho dòng hiện tại :someCode(); // tslint:disable-line:rule1

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.