ESLint использует систему форматтеров для преобразования результатов анализа кода в читаемый или машиночитаемый вид. Форматтер определяет, как именно будут представлены ошибки, предупреждения и статистика проверки. Одним из базовых и наиболее распространённых вариантов является форматтер stylish, ориентированный на человекочитаемый вывод в терминале.
Результат работы линтера состоит из набора сообщений, сгруппированных по файлам. Каждый форматтер получает одинаковую структуру данных и преобразует её в свой формат отображения:
Форматтер stylish представляет эти данные в компактном, структурированном виде, оптимизированном для чтения в консоли без дополнительного анализа.
Stylish выводит ошибки построчно, группируя их по файлам. Каждый файл отделяется от другого визуальным разделением, а каждая проблема содержит координаты и описание.
Типовая строка ошибки включает:
Формат ориентирован на быстрое понимание местоположения проблемы без необходимости дополнительной обработки данных.
/src/app.js
10:5 error 'x' is assigned a value but never used no-unused-vars
14:2 error Unexpected console statement no-console
/src/utils.js
3:1 warning Missing semicolon semi
В этом примере:
/src/app.js и /src/utils.js — файлы, в
которых обнаружены проблемы10:5 — позиция ошибки (строка 10, столбец 5)error или warning — уровень
серьёзностиno-unused-vars, no-console,
semi — правила, вызвавшие сообщениеStylish использует фиксированную табуляцию и выравнивание колонок для улучшения читаемости:
Такая структура позволяет быстро просматривать большие отчёты без потери ориентации.
Форматтер stylish может быть выбран явно при запуске ESLint:
eslint . --format stylish
или сокращённо:
eslint . -f stylish
Если форматтер не указан, ESLint может использовать stylish по умолчанию в некоторых конфигурациях или версиях, ориентированных на интерактивную работу в терминале.
Формат json предназначен для машинной обработки:
[
{
"filePath": "/src/app.js",
"messages": [
{
"line": 10,
"column": 5,
"message": "'x' is assigned a value but never used",
"ruleId": "no-unused-vars"
}
]
}
]
Используется в CI/CD, аналитике и интеграциях.
Compact формат уменьшает объём вывода:
/src/app.js:10:5: 'x' is assigned a value but never used. (no-unused-vars)
Он менее структурирован, но занимает меньше места.
Используется для интеграции с системами сборки, например Jenkins. Вывод формируется в XML-структуре.
Stylish занимает промежуточное положение между компактностью и читаемостью, оставаясь оптимальным для ручного анализа.
Stylish обладает рядом характерных свойств:
Формат не предназначен для последующего парсинга программами, его основная цель — отображение результата работы линтера разработчику.
Каждое сообщение включает несколько компонентов:
Дополнительно могут отображаться:
Если в одном файле найдено несколько нарушений, они группируются под одним заголовком файла:
/src/index.js
5:10 error Unexpected var, use let or const no-var
6:1 error Missing semicolon semi
8:3 warning Unexpected console statement no-console
Порядок сортировки обычно соответствует порядку появления в коде.
В проектах с большим количеством файлов stylish может генерировать значительный объём вывода. Несмотря на это, структура остаётся читаемой благодаря:
При этом формат не оптимизирован для автоматического анализа результатов, что ограничивает его использование в сложных CI-сценариях.
Несмотря на удобство, формат имеет ряд ограничений:
Stylish предназначен исключительно для визуального представления и не подходит для интеграций, требующих строгого формата данных.
Stylish исторически стал одним из первых форматтеров ESLint и долгое время использовался как стандартный вариант отображения. Его дизайн отражает основную философию линтера: минимализм, ясность и ориентация на разработчика, работающего в терминале.
Формат остаётся актуальным в сценариях локальной разработки, где важна быстрая интерпретация результатов анализа без дополнительной обработки данных.