ESLint OverridesЗаметил, что часто требуется настроить ESLint для разных директорий по разному. Иногда, вообще нужно выключить некоторые правила в отдельных директориях (например, tests).
Не так давно в eslint config завезли параметр overrides. Позволяет переопределить правила для определенных файлов или директорий.
Выглядит так:
{
overrides: [
{
files: [“PATTERN”, “ANOTHER”], excludedFiles: “EXCLUDE”,
...CONFIG,
}
]
}- Вместо
PATTERN и
ANOTHER можно вписывать relative glob patterns выбирающие файлы, к которым применяются правила описанные в CONFIG.
-
CONFIG это буквально такой же конфиг как и обычный eslint конфиг.
-
excludedFiles опциональный параметр, позволяет выкинуть некоторые файлы из выбранных раннее.
ПримерыВключить JEST окружение для тестов:
{
files: [“**/*.test.ts”, “**/*.test.tsx”, “tests/**.ts”, “tests/**.tsx”],
env: { jest: true },
}Включить плагин и конфиг для моделей:
{
files: [“**/model.ts”],
plugins: [“@company-name/eslint-plugin-model”],
extends: [
“plugin:@company-name/eslint-plugin-model/recommended”,
],
}ДокументацияПример конфига из моего проекта