จะละเว้นไดเร็กทอรีหรือไฟล์เฉพาะสำหรับ tslint ได้อย่างไร


141

IDE ที่ใช้คือ WebStorm 11.0.3 ซึ่ง tslint ได้รับการกำหนดค่าและใช้งานได้ แต่แฮงค์เพราะพยายามแยกวิเคราะห์ไฟล์ไลบรารี * .d.ts ขนาดใหญ่

มีวิธีละเว้นไฟล์หรือไดเรกทอรีเฉพาะหรือไม่?

คำตอบ:


208

อัปเดตสำหรับtslint v5.8.0

ดังที่กล่าวโดยSaugat Acharyaคุณสามารถอัปเดตตัวเลือกtslint.json CLI ได้แล้ว:

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

ข้อมูลเพิ่มเติมในคำขอดึงนี้


คุณลักษณะนี้ได้รับการแนะนำให้รู้จักกับtslint 3.6

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

ตอนนี้คุณสามารถเพิ่ม --exclude (หรือ -e) ดูPR ได้ที่นี่

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

คุณกำลังมองหาที่ใช้

-e, --exclude         exclude globs from path expansion

คุณรู้วิธียกเว้นหลายเส้นทางหรือไม่?
Juan Henao

4
ทำซ้ำอาร์กิวเมนต์ยกเว้นหลาย ๆ ครั้ง
Markus Wagner

4
การแก้ไขlinterOptionscliOptions
เล็กน้อย

4
นอกจากนี้ยังควรกล่าวถึงว่ารูปแบบtslint.json
ลูกโลก

70

ขณะนี้ใช้ Visual Studio Code และคำสั่งปิดการใช้งาน tslint คือ

/* tslint:disable */

สิ่งที่ควรทราบ การปิดการใช้งานข้างต้นปิดใช้งานกฎ tslint ทั้งหมดในหน้านั้น หากคุณต้องการปิดใช้งานกฎเฉพาะคุณสามารถระบุกฎหนึ่ง / หลายกฎได้

/* tslint:disable comment-format */
/* tslint:disable:rule1 rule2 rule3 etc.. */

หรือเปิดใช้งานกฎ

/* tslint:enable comment-format */

ข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับแฟล็กกฎ TSLint


3
จากคำตอบทั้งหมดนี่เป็นคำตอบเดียวที่ได้ผล ขอบคุณ!
Oz Lodriguez

27

นอกจากคำตอบของ Michael แล้วให้พิจารณาวิธีที่สอง: การเพิ่มlinterOptions.excludeใน tslint.json

ตัวอย่างเช่นคุณอาจมีtslint.jsonบรรทัดต่อไปนี้:

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

18

เริ่มจากtslint v5.8.0คุณสามารถตั้งค่าexcludeคุณสมบัติภายใต้linterOptionsคีย์ของคุณในtslint.jsonไฟล์ของคุณ:

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

ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ที่นี่


2
สิ่งนี้ควรถูกทำเครื่องหมายว่าเป็นคำตอบที่ถูกต้อง (และอัปเดตเมื่อพฤศจิกายน 2017)
Andres Elizondo

วิธีที่ถูกต้องในการทำเช่นนี้คือการแทนที่ด้วยcliOptions linterOptions
Saugat


8

ฉันต้องใช้ไวยากรณ์ ** / * เพื่อแยกไฟล์ในโฟลเดอร์:

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

6

ขณะนี้ตัวเลือกถูกจัดการโดย CLI เท่านั้น หากคุณไม่ได้ใช้ CLI ขึ้นอยู่กับฐานรหัสที่คุณใช้คุณจะต้องตั้งค่าการละเว้นที่อื่น webpack, tsconfig ฯลฯ


3

สามารถยืนยันได้ว่าบนเวอร์ชัน tslint 5.11.0 ทำงานได้โดยการแก้ไข lint script ใน package.json โดยการกำหนด exclude อาร์กิวเมนต์:

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

ไชโย !!


1
คุณกำลังอ้างถึงคำตอบอื่น ๆ หรือเพียงแค่ต้องการให้คำตอบอื่นสำหรับคำถามนี้
Dharman

1

นอกจากนี้

เพื่อปิดใช้งานกฎทั้งหมดสำหรับบรรทัดถัดไป // tslint:disable-next-line

หากต้องการปิดใช้งานกฎเฉพาะสำหรับบรรทัดถัดไป :// tslint:disable-next-line:rule1 rule2...

หากต้องการปิดใช้งานกฎทั้งหมดสำหรับบรรทัดปัจจุบัน :someCode(); // tslint:disable-line

หากต้องการปิดใช้งานกฎเฉพาะสำหรับบรรทัดปัจจุบัน :someCode(); // tslint:disable-line:rule1

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.