Wyłącz reguły eslint dla folderu


181

Czy istnieje sposób na wyłączenie określonych reguł dla folderu? Na przykład nie chcę mieć wymaganych komentarzy JSDoc dla wszystkich moich plików testowych w testfolderze. Czy jest na to sposób?


eslint-babel wydaje się ignorować wszelkie pliki i ustawienia .eslint-ignore.
ivanixmobile

Odpowiedzi:


301

Aby zignorować niektóre foldery z reguł eslint, możemy utworzyć plik .eslintignorew katalogu głównym i dodać tam ścieżkę do folderu, który chcemy pominąć (tak samo jak w przypadku .gitignore).

Oto przykład z dokumentacji ESLint na temat ignorowania plików i katalogów :

# 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
To rozwiązanie tak naprawdę nie odpowiada na pierwotne pytanie, które pyta, jak wyłączyć określone reguły dla określonego katalogu. Tutaj wyłączasz wszystkie reguły dla podanych katalogów. Lepsza odpowiedź jest tutaj: stackoverflow.com/a/41316801/882638
ericgio

3
Fragment dokumentacji ESLintOprócz jakichkolwiek wzorców w pliku .eslintignore, ESLint zawsze ignoruje pliki w / node_modules / * i / bower_components / *. ” Nie ma więc potrzeby dodawania /node_modules, /distsamo wystarczy, aby wykluczyć oba katalogi . Podczas określania (pod) katalogów obsługiwany jest również wzorzec glob.
ozanmuyes

Czy jest sposób, aby to zrobić za pomocą vue.config.js lub package.json?
Serge

3
Czy w ogóle istnieje możliwość skonfigurowania, które katalogi mają być ignorowane w samym .eslintrc.jsonpliku konfiguracyjnym, abyśmy nie potrzebowali kolejnego pliku .estlint i moglibyśmy dziedziczyć wartości ignorowane ze eslint-config-myconfigwspółdzielonej konfiguracji?
Joshua Pinter

1
Istnieje wiele podobnych postów na ten temat. Potrzebowałem: --ignore-pathi / lub --ignore-pattern, i myślę, że to również trafnie odpowiada na to pytanie.
Neil Guy Lindberg,

50

Poprzednie odpowiedzi były na dobrej drodze, ale pełna odpowiedź brzmi: Wyłączanie reguł tylko dla grupy plików , znajdziesz tam dokumentację potrzebną do wyłączania / włączania reguł dla niektórych folderów (ponieważ w niektórych przypadkach nie nie chcę ignorować całej sprawy, wyłącz tylko niektóre reguły). Przykład:

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

2
Ta odpowiedź jest lepsza, ponieważ możesz wyłączyć określoną regułę dla danego katalogu. Zamiast po prostu wyłączać wszystkie reguły dla katalogu.
Storm Muller,

1
To początkowo nie działało dla mnie. Upewnij się, że nie masz .eslintrc.jsw tym folderze znaku extends: "../.eslintrc.js"!
Florian Wendelborn

2

Wersja YAML:

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

Przykład szczegółowych zasad dotyczących testów mokka:

Możesz również ustawić określone środowisko env dla folderu, na przykład:

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

Ta konfiguracja naprawi komunikat o błędzie dotyczący describei itnie zdefiniowany, tylko dla twojego folderu testowego:

/myproject/test/init-tests.js
6: 1 błąd „opisuje” nie definiuje bez undef
9: 3 błędzie „on” nie jest określony nie-undef

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.