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

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

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

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

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