ปิดใช้งานกฎ eslint สำหรับโฟลเดอร์


181

มีวิธีปิดการใช้งานกฎเฉพาะสำหรับโฟลเดอร์หรือไม่? ตัวอย่างเช่นฉันไม่ต้องการให้ข้อคิดเห็น JSDoc สำหรับไฟล์ทดสอบทั้งหมดของฉันในtestโฟลเดอร์ มีวิธีทำเช่นนี้หรือไม่?


eslint-babel ดูเหมือนจะไม่สนใจไฟล์และการตั้งค่า. eslint-ละเว้น
ivanixmobile

คำตอบ:


302

ในการเพิกเฉยบางโฟลเดอร์จากกฎ eslint เราสามารถสร้างไฟล์.eslintignoreในไดเรกทอรีรากและเพิ่มเส้นทางไปยังโฟลเดอร์ที่เราต้องการละเว้น (เช่นเดียวกับ.gitignore)

นี่คือตัวอย่างจากเอกสาร ESLint ในการข้ามไฟล์และไดเรกทอรี :

# path/to/project/root/.eslintignore
# /node_modules/* and /bower_components/* in the project root are ignored by default

# Ignore built files except build/index.js
build/*
!build/index.js

34
วิธีนี้ไม่ได้ตอบคำถามเดิมจริง ๆ ซึ่งถามวิธีปิดการใช้งานกฎเฉพาะสำหรับไดเรกทอรีเฉพาะ ที่นี่คุณจะปิดการใช้งานกฎทั้งหมดสำหรับไดเรกทอรีที่กำหนด คำตอบที่ดีกว่าอยู่ที่นี่: stackoverflow.com/a/41316801/882638
ericgio

3
ข้อความที่ตัดตอนมาจากเอกสาร ESLint " นอกจากรูปแบบใด ๆ ในแฟ้ม .eslintignore ที่ ESLint เสมอละเว้นไฟล์ใน / node_modules / * และ / bower_components / *. " ดังนั้นจึงมีความจำเป็นที่จะเพิ่ม/node_modules, /distอยู่คนเดียวก็เพียงพอที่จะไม่รวมทั้งของไดเรกทอรี . นอกจากนี้ยังสนับสนุนรูปแบบ glob ขณะระบุไดเรกทอรี (ย่อย)
ozanmuyes

มีวิธีทำกับ vue.config.js หรือ package.json หรือไม่
Serge

3
มีการกำหนดค่าไดเรกทอรีใดที่จะเพิกเฉยใน.eslintrc.jsonไฟล์กำหนดค่าเองดังนั้นเราจึงไม่ต้องการไฟล์. ost อีกไฟล์หนึ่งและเราสามารถรับค่าละเว้นจากการeslint-config-myconfigกำหนดค่าที่ใช้ร่วมกันได้หรือไม่
Joshua Pinter

1
มีโพสต์ที่คล้ายกันหลายรายการในนี้ ฉันต้องการ: --ignore-pathและ / หรือ--ignore-patternและฉันคิดว่านั่นก็ตอบคำถามนี้ได้อย่างถูกต้องเช่นกัน
Neil Guy Lindberg

50

คำตอบก่อนหน้านี้อยู่ในเส้นทางที่ถูกต้อง แต่คำตอบที่สมบูรณ์สำหรับสิ่งนี้กำลังจะปิดการใช้งานกฎสำหรับกลุ่มของไฟล์เท่านั้นคุณจะพบเอกสารที่จำเป็นในการปิด / เปิดใช้งานกฎสำหรับบางโฟลเดอร์ (เพราะในบางกรณีคุณ ไม่ต้องการละเว้นสิ่งทั้งหมดเพียงปิดใช้งานกฎบางอย่างเท่านั้น) ตัวอย่าง:

{
    "env": {},
    "extends": [],
    "parser": "",
    "plugins": [],
    "rules": {},
    "overrides": [
      {
        "files": ["test/*.spec.js"], // Or *.test.js
        "rules": {
          "require-jsdoc": "off"
        }
      }
    ],
    "settings": {}
}

2
คำตอบนี้ดีกว่าเพราะคุณสามารถปิดกฎเฉพาะสำหรับไดเรกทอรีที่กำหนด แทนที่จะเพียงแค่ปิดกฎทั้งหมดสำหรับไดเรกทอรี
Storm Muller

1
ตอนแรกมันไม่ได้ผลสำหรับฉัน ตรวจสอบให้แน่ใจว่าคุณไม่มี.eslintrc.jsในโฟลเดอร์นั้นด้วยextends: "../.eslintrc.js"!
Florian Wendelborn

2

เวอร์ชัน YAML:

overrides:
  - files: *-tests.js
    rules:
      no-param-reassign: 0

ตัวอย่างของกฎเฉพาะสำหรับการทดสอบมอคค่า:

คุณสามารถตั้งค่า env เฉพาะสำหรับโฟลเดอร์เช่นนี้:

overrides:
  - files: test/*-tests.js
    env:
      mocha: true

การกำหนดค่านี้จะแก้ไขข้อผิดพลาดเกี่ยวกับdescribeและitไม่ได้กำหนดเฉพาะสำหรับโฟลเดอร์ทดสอบของคุณ:

/myproject/test/init-tests.js
6: 1 ข้อผิดพลาด 'อธิบาย' ไม่ได้กำหนด no-undef
9: 3 ข้อผิดพลาด 'มัน' ไม่ได้กำหนด no-undef

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