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