Экземпляр ESLint создаётся через конструктор
new ESLint(options), где весь процесс анализа кода
управляется набором параметров, определяющих:
Конструктор формирует внутренний пайплайн линтинга, в котором каждая опция влияет на отдельный этап обработки файлов: от их поиска до финального отчёта.
Параметр useEslintrc управляет тем, будут ли
использоваться внешние конфигурационные файлы (.eslintrc,
.eslintrc.json, .eslintrc.js и т.д.).
true — подключение конфигураций из файлов проекта;false — игнорирование всех внешних конфигураций.Этот параметр используется для изоляции окружения линтинга, когда требуется строго контролируемая конфигурация без влияния проекта.
overrideConfig позволяет задать конфигурацию правил
напрямую в коде, полностью или частично перекрывая настройки из
файлов.
Структурно включает:
rules — набор правил ESLint;parserOptions — параметры парсера;env — окружение выполнения;globals — глобальные переменные;plugins — подключаемые плагины.Особенность overrideConfig заключается в том, что он
применяется поверх всех остальных конфигураций, формируя финальное
поведение линтера.
baseConfig задаёт базовую конфигурацию, используемую как
фундамент перед применением остальных настроек.
Отличие от overrideConfig:
baseConfig формирует стартовое состояние;overrideConfig изменяет уже сформированную
конфигурацию.Такой механизм позволяет строить многоуровневую систему конфигурации, где базовые правила дополняются или переопределяются на верхних слоях.
cwd определяет рабочую директорию, относительно которой
происходит:
Изоляция через cwd особенно важна при запуске ESLint из
скриптов или CI-сред, где текущая директория процесса может отличаться
от корня проекта.
extensions задаёт список расширений файлов, которые
будут анализироваться.
Примеры:
.js.jsx.ts.tsx.mjs.cjsЭтот параметр влияет на этап поиска файлов и фильтрацию входных данных перед анализом.
globInputPaths управляет тем, как интерпретируются
входные пути:
true — поддержка glob-выражений
(src/**/*.js);false — трактовка путей как точных файлов.Использование glob-режима увеличивает гибкость при анализе больших кодовых баз.
Параметр ignore включает или отключает стандартный
механизм игнорирования файлов.
true — используются .eslintignore и
встроенные правила игнорирования;false — игнорирование отключается полностью.Отключение игнорирования приводит к анализу всех файлов, включая зависимости и временные директории, что используется в диагностических сценариях.
ignorePatterns позволяет явно задать список шаблонов,
исключаемых из анализа.
Поддерживаются glob-шаблоны:
node_modules/dist/build/**/*.jsЭти правила объединяются с другими механизмами игнорирования и участвуют в финальной фильтрации файлов до начала линтинга.
fix включает автоматическое исправление ошибок, если
правило ESLint поддерживает такую возможность.
true — включить автофикс;false — только диагностика без изменения кода.При включённом режиме ESLint формирует не только отчёт, но и модифицированную версию файлов.
Этот параметр управляет проверкой неиспользуемых директив отключения
правил (eslint-disable).
true — такие директивы фиксируются как проблемы;false — игнорируются.Данная опция повышает качество кода, предотвращая накопление устаревших отключений линтинга.
plugins задаёт список подключаемых ESLint-плагинов,
расширяющих набор правил.
Каждый плагин может предоставлять:
Плагины интегрируются в систему правил и участвуют в построении AST-анализа.
rulePaths определяет директории, из которых загружаются
пользовательские правила.
Используется для:
Загруженные правила становятся частью общей системы валидации.
errorOnUnmatchedPattern определяет поведение при
отсутствии файлов, соответствующих переданным шаблонам.
true — выбрасывается ошибка;false — выполнение продолжается без ошибок.Данный параметр критичен для CI-пайплайнов, где отсутствие файлов может означать неправильную конфигурацию сборки.
cache включает механизм кэширования результатов
линтинга.
Кэширование особенно эффективно в больших проектах с инкрементальными изменениями.
cacheLocation задаёт путь к файлу кэша.
Позволяет:
cacheStrategy определяет логику обновления кэша:
Выбор стратегии влияет на баланс между скоростью и точностью определения изменений.
Этот параметр задаёт директорию, относительно которой происходит поиск плагинов.
Используется в случаях:
Без этой настройки ESLint может некорректно резолвить зависимости.
allowInlineConfig управляет возможностью использования
inline-директив в коде:
true — разрешены комментарии вида
/* eslint-disable */;false — inline-конфигурации игнорируются.Этот режим применяется для жёстких корпоративных стандартов, где конфигурация должна быть централизованной.
fixTypes позволяет ограничить типы исправлений,
применяемых автоматически.
Поддерживаются категории исправлений:
Использование этого параметра позволяет контролировать степень автоматической модификации кода.
Конструктор ESLint строит многоступенчатую систему обработки:
cwd);useEslintrc,
baseConfig, overrideConfig);extensions,
globInputPaths);ignore,
ignorePatterns);plugins,
resolvePluginsRelativeTo);fix,
fixTypes);reportUnusedDisableDirectives,
errorOnUnmatchedPattern);cache,
cacheLocation).Каждый параметр конструктора участвует в одном или нескольких этапах, формируя итоговое поведение линтера как единой системы анализа кода.