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?

DevNebulae
źródło
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
YaTaras
źródło
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": {}
}
Alberto Perez
źródło
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

A-312
źródło