ESLint предоставляет полноценный интерфейс командной строки,
позволяющий запускать анализ кода, применять автоисправления, управлять
конфигурацией и интегрировать проверку качества кода в процессы сборки и
CI/CD. Основной инструмент запуска — бинарный файл eslint,
доступный после установки пакета.
Типовая установка:
npm install eslint --save-dev
После установки команда становится доступной через
npx:
npx eslint .
или через npm-скрипты:
{
"scripts": {
"lint": "eslint ."
}
}
Запуск:
npm run lint
Команда eslint принимает путь к файлам или директориям.
Анализ может выполняться как по отдельным файлам, так и по целым
проектам.
eslint src/index.js
eslint src/
eslint .
При передаче директории происходит рекурсивный обход файлов с учётом настроек игнорирования.
Для явного указания расширений:
eslint src --ext .js,.jsx,.ts,.tsx
Флаг --ext определяет, какие типы файлов включаются в
проверку при обходе директорий.
CLI поддерживает glob-паттерны:
eslint "src/**/*.js"
eslint "src/**/components/**/*.{js,ts}"
Кавычки обязательны в большинстве оболочек, чтобы предотвратить преждевременное раскрытие шаблонов.
ESLint поддерживает несколько форматов вывода через
--format.
Стандартный формат:
eslint src --format stylish
JSON:
eslint src --format json
HTML:
eslint src --format html
Форматы используются для интеграции с CI, генерации отчетов и визуализации ошибок.
Также возможно использование кастомных форматтеров:
eslint src --format ./formatters/my-formatter.js
Одной из ключевых возможностей CLI является автоисправление:
eslint src --fix
Исправляются только правила, поддерживающие автоматическое исправление. Остальные ошибки остаются без изменений.
Режим проверки без внесения изменений:
eslint src --fix-dry-run
Этот режим полезен для анализа потенциальных изменений перед применением.
ESLint использует несколько механизмов игнорирования:
Файл .eslintignore задаёт исключения:
node_modules/
dist/
build/
eslint src --ignore-path .gitignore
eslint src --no-ignore
Этот режим заставляет ESLint анализировать все файлы, включая обычно исключённые.
Для ускорения повторных запусков используется кэш:
eslint src --cache
По умолчанию кэш хранится в .eslintcache. Можно изменить
путь:
eslint src --cache --cache-location .cache/eslint.json
Кэширование особенно эффективно в крупных проектах с тысячами файлов.
CLI позволяет анализировать, какая конфигурация применяется к конкретному файлу:
eslint --print-config src/index.js
Вывод включает все правила, плагины, парсеры и расширенные настройки после объединения конфигураций.
eslint -c .eslintrc.json src
или
eslint --config ./config/eslint.config.js src
При использовании современных flat config подходов конфигурация может
задаваться через eslint.config.js, что изменяет логику
загрузки правил и плагинов.
CLI позволяет задавать глобальные переменные:
eslint src --global window,document
Также возможно указание среды выполнения:
eslint src --env browser,node
Хотя современные конфигурации чаще задают это через config-файлы, CLI остаётся доступным уровнем переопределения.
Отдельные правила могут быть включены или отключены:
eslint src --rule "no-console: off"
eslint src --rule "eqeqeq: error"
Такой подход используется для временных исключений или отладки конфигурации.
eslint src --debug
Выводит информацию о загрузке конфигураций, плагинов и файлов.
При проблемах с конфигурацией полезен режим:
eslint --print-config src/index.js
или комбинация с debug:
eslint src --debug
CLI возвращает коды завершения:
0 — ошибок нет1 — найдены ошибкиЭто используется в CI-системах:
eslint src || exit 1
или автоматически в pipeline:
eslint src
с последующим падением job при ошибках.
eslint src --max-warnings 10
Если количество предупреждений превышает порог, процесс завершается с ошибкой.
ESLint может анализировать код из стандартного ввода:
echo "const a = 1" | eslint --stdin
Часто используется в редакторах и интеграциях.
Также можно указать имя файла для корректного применения правил:
echo "const a = 1" | eslint --stdin --stdin-filename test.js
Дополнительные механизмы управления выборкой файлов:
eslint src --ignore-pattern "**/*.min.js"
Исключения можно комбинировать:
eslint src --ignore-pattern "dist/**" --ignore-pattern "build/**"
eslint src --ext .js
eslint src --ext .js,.ts
При этом ESLint фильтрует файлы до анализа.
Типичная практика использования CLI заключается в определении скриптов:
{
"scripts": {
"lint": "eslint src",
"lint:fix": "eslint src --fix",
"lint:ci": "eslint src --format json > eslint-report.json"
}
}
Такая структура обеспечивает разделение режимов работы: локальная проверка, автоисправление и CI-отчётность.
В монорепозиториях часто применяется запуск по подкаталогам:
eslint packages/*/src
или через glob:
eslint "packages/**/src"
Это позволяет ограничивать область анализа конкретными пакетами.
CLI допускает приоритет конфигурации через явные параметры:
eslint src --config configs/eslint.base.js
При наличии нескольких конфигураций применяется последняя загруженная, но CLI позволяет переопределить поведение явно.
В новых версиях ESLint применяется flat config, где конфигурация представляет собой JavaScript-массив объектов.
Запуск CLI остаётся прежним:
eslint src
Однако поведение загрузки конфигурации меняется: отсутствует
каскадное наследование .eslintrc, и вместо этого
используется единый конфигурационный файл.
Производительность CLI зависит от нескольких факторов:
--cacheПример оптимизированного запуска:
eslint src --cache --ext .js,.ts
В связке с git:
eslint $(git diff --name-only --cached)
eslint src server shared
eslint src/index.js --format unix
Если файл содержит синтаксическую ошибку, ESLint прекращает анализ этого файла и выводит соответствующее сообщение. При этом остальные файлы продолжают проверяться, если не задано обратное поведение через CI-обвязку.
CLI ESLint часто включается в этап линтинга перед сборкой:
npm run lint && npm run build
или в CI-конфигурации:
eslint src --format junit > report.xml
Формат JUnit используется для интеграции с системами отчётности.
CLI напрямую поддерживает только один формат, но можно комбинировать через перенаправление потоков:
eslint src --format json > report.json
и параллельно:
eslint src --format stylish
При проблемах с плагинами:
eslint src --debug
отображает:
Это критически важно при сложных конфигурациях с несколькими уровнями зависимостей.
Командная строка ESLint является центральным интерфейсом, через который осуществляется полный цикл работы линтера: от первичного анализа файлов до интеграции в автоматизированные процессы, контроля качества и формирования отчётности.