Опции конструктора

Общая структура конфигурации конструктора

Экземпляр ESLint создаётся через конструктор new ESLint(options), где весь процесс анализа кода управляется набором параметров, определяющих:

  • источник конфигурации правил;
  • правила обработки файлов;
  • стратегию игнорирования;
  • поведение линтера при обнаружении ошибок;
  • механизм подключения плагинов;
  • режим автоматического исправления;
  • контекст выполнения (рабочая директория, пути поиска модулей).

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


Управление конфигурацией правил

useEslintrc

Параметр useEslintrc управляет тем, будут ли использоваться внешние конфигурационные файлы (.eslintrc, .eslintrc.json, .eslintrc.js и т.д.).

  • true — подключение конфигураций из файлов проекта;
  • false — игнорирование всех внешних конфигураций.

Этот параметр используется для изоляции окружения линтинга, когда требуется строго контролируемая конфигурация без влияния проекта.


overrideConfig

overrideConfig позволяет задать конфигурацию правил напрямую в коде, полностью или частично перекрывая настройки из файлов.

Структурно включает:

  • rules — набор правил ESLint;
  • parserOptions — параметры парсера;
  • env — окружение выполнения;
  • globals — глобальные переменные;
  • plugins — подключаемые плагины.

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


baseConfig

baseConfig задаёт базовую конфигурацию, используемую как фундамент перед применением остальных настроек.

Отличие от overrideConfig:

  • baseConfig формирует стартовое состояние;
  • overrideConfig изменяет уже сформированную конфигурацию.

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


Работа с файлами и путями

cwd

cwd определяет рабочую директорию, относительно которой происходит:

  • поиск файлов для линтинга;
  • разрешение путей к конфигурациям;
  • интерпретация относительных импортов.

Изоляция через cwd особенно важна при запуске ESLint из скриптов или CI-сред, где текущая директория процесса может отличаться от корня проекта.


extensions

extensions задаёт список расширений файлов, которые будут анализироваться.

Примеры:

  • .js
  • .jsx
  • .ts
  • .tsx
  • .mjs
  • .cjs

Этот параметр влияет на этап поиска файлов и фильтрацию входных данных перед анализом.


globInputPaths

globInputPaths управляет тем, как интерпретируются входные пути:

  • true — поддержка glob-выражений (src/**/*.js);
  • false — трактовка путей как точных файлов.

Использование glob-режима увеличивает гибкость при анализе больших кодовых баз.


Игнорирование файлов

ignore

Параметр ignore включает или отключает стандартный механизм игнорирования файлов.

  • true — используются .eslintignore и встроенные правила игнорирования;
  • false — игнорирование отключается полностью.

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


ignorePatterns

ignorePatterns позволяет явно задать список шаблонов, исключаемых из анализа.

Поддерживаются glob-шаблоны:

  • node_modules/
  • dist/
  • build/**/*.js

Эти правила объединяются с другими механизмами игнорирования и участвуют в финальной фильтрации файлов до начала линтинга.


Поведение исправлений

fix

fix включает автоматическое исправление ошибок, если правило ESLint поддерживает такую возможность.

  • true — включить автофикс;
  • false — только диагностика без изменения кода.

При включённом режиме ESLint формирует не только отчёт, но и модифицированную версию файлов.


reportUnusedDisableDirectives

Этот параметр управляет проверкой неиспользуемых директив отключения правил (eslint-disable).

  • true — такие директивы фиксируются как проблемы;
  • false — игнорируются.

Данная опция повышает качество кода, предотвращая накопление устаревших отключений линтинга.


Подключение плагинов и расширений

plugins

plugins задаёт список подключаемых ESLint-плагинов, расширяющих набор правил.

Каждый плагин может предоставлять:

  • новые правила;
  • конфигурации;
  • процессоры файлов.

Плагины интегрируются в систему правил и участвуют в построении AST-анализа.


rulePaths

rulePaths определяет директории, из которых загружаются пользовательские правила.

Используется для:

  • локальных наборов правил;
  • корпоративных стандартов кодирования;
  • расширения ESLint без публикации npm-пакета.

Загруженные правила становятся частью общей системы валидации.


Управление ошибками и стабильностью

errorOnUnmatchedPattern

errorOnUnmatchedPattern определяет поведение при отсутствии файлов, соответствующих переданным шаблонам.

  • true — выбрасывается ошибка;
  • false — выполнение продолжается без ошибок.

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


Кэширование и производительность

cache

cache включает механизм кэширования результатов линтинга.

  • ускоряет повторные запуски;
  • сохраняет результаты анализа неизменённых файлов.

Кэширование особенно эффективно в больших проектах с инкрементальными изменениями.


cacheLocation

cacheLocation задаёт путь к файлу кэша.

Позволяет:

  • разделять кэши для разных окружений;
  • изолировать результаты линтинга между ветками проекта.

cacheStrategy

cacheStrategy определяет логику обновления кэша:

  • сравнение по содержимому файла;
  • сравнение по метаданным (в зависимости от реализации ESLint).

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


Контроль подключения плагинов

resolvePluginsRelativeTo

Этот параметр задаёт директорию, относительно которой происходит поиск плагинов.

Используется в случаях:

  • монорепозиториев;
  • нестандартных структур node_modules;
  • изолированных окружений выполнения.

Без этой настройки ESLint может некорректно резолвить зависимости.


Расширенные параметры конфигурации

allowInlineConfig

allowInlineConfig управляет возможностью использования inline-директив в коде:

  • true — разрешены комментарии вида /* eslint-disable */;
  • false — inline-конфигурации игнорируются.

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


fixTypes

fixTypes позволяет ограничить типы исправлений, применяемых автоматически.

Поддерживаются категории исправлений:

  • синтаксические;
  • стилистические;
  • потенциально опасные (в зависимости от конфигурации).

Использование этого параметра позволяет контролировать степень автоматической модификации кода.


Взаимодействие параметров внутри конструктора

Конструктор ESLint строит многоступенчатую систему обработки:

  1. Определение рабочей директории (cwd);
  2. Загрузка конфигураций (useEslintrc, baseConfig, overrideConfig);
  3. Формирование списка файлов (extensions, globInputPaths);
  4. Применение игнорирования (ignore, ignorePatterns);
  5. Подключение плагинов (plugins, resolvePluginsRelativeTo);
  6. Выполнение анализа и фиксов (fix, fixTypes);
  7. Формирование отчёта с учётом правил (reportUnusedDisableDirectives, errorOnUnmatchedPattern);
  8. Опциональное кэширование результатов (cache, cacheLocation).

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