ESLint игнорирует конкретное правило для определенного каталога

Можно ли с помощью ESLint игнорировать одно конкретное правило для всего каталога?

В моем случае я хотел бы игнорировать import/prefer-default-export для каталога с именем commonComponents

3 ответа

Решение

Конфигурация ESLint ( .eslintrc ) файлы являются иерархическими:

ESLint будет автоматически искать их в каталоге файла, который нужно пометить, и в последующих родительских каталогах вплоть до корневого каталога файловой системы. Эта опция полезна, когда вам нужны разные конфигурации для разных частей проекта или если вы хотите, чтобы другие могли использовать ESLint напрямую, не забывая передавать файл конфигурации.

Вы можете отключить import/prefer-default-export Правило для commonComponents каталог путем создания .eslintrc файл со следующим содержимым в этом каталоге:

{
    "rules": {
        "import/prefer-default-export": "off"
    }
}

Вы также можете использовать клавишу "переопределения" для объявления правил для различных шаблонов глобуса.

Ознакомьтесь с конфигурацией на основе шаблонов глобусов

Иногда требуется более точно контролируемая конфигурация, например, если конфигурация для файлов в одном и том же каталоге должна отличаться. Поэтому вы можете предоставить конфигурации в ключе переопределений, которые будут применяться только к файлам, которые соответствуют определенным шаблонам глобусов, используя тот же формат, который вы передаете в командной строке (например, app/**/*. Test.js).

Я использую это, чтобы удалить no-unused-expressions правило из моих тестовых файлов вот так;

"overrides": [{
  "files": [ "*.spec.js" ],
  "rules": {
    "no-unused-expressions": 0
  }
}]

Если есть несколько каталогов, к которым вы хотите применить свои правила, то вы можете создавать различные конфигурации для разных целей. Например:

  • .eslintrc.json для общего конфига
  • .eslintrc-main.json для основного линтинга и бега eslint -c .eslintrc-main src test
  • .eslintrc-comp.json для компонентов и запуска eslint -c .eslintrc-comp commonComponents fooBarComponent

Cretae .eslintignore и поместите в него пример исключенных папок:

node_modules/
functions/
dist/

Версия YAML:

rules:
  no-unused-expressions: true

overrides:
  - files: *-tests.js
    rules:
      no-unused-expressions: false
Другие вопросы по тегам