Конфигурационный файл Lighthouse позволяет тонко настраивать процесс аудита веб-страниц, управлять категориями и аудитами, а также интегрировать кастомные расширения. Файл пишется на JavaScript или JSON и предоставляет гибкий механизм конфигурации, влияющий на все аспекты работы Lighthouse.
Файл конфигурации представляет собой объект с ключевыми полями:
extends – массив или строка, указывающий на базовый
набор конфигураций, который будет расширен. Например, можно использовать
стандартную конфигурацию lighthouse:default.settings – объект с настройками запуска Lighthouse,
такими как formFactor, throttling,
maxWaitForFcp, maxWaitForLoad и др.audits – массив строк или объектов, задающий конкретные
аудиты, которые будут выполнены.categories – объект, определяющий категории аудита и их
соответствие отдельным аудитам.groups – объект для объединения аудитов в логические
блоки внутри отчета.Пример минимальной структуры:
{
"extends": "lighthouse:default",
"settings": {
"formFactor": "mobile",
"throttlingMethod": "simulate",
"maxWaitForFcp": 15000
},
"audits": ["first-contentful-paint", "largest-contentful-paint"],
"categories": {
"performance": {
"title": "Performance",
"audits": ["first-contentful-paint", "largest-contentful-paint"]
}
}
}
settingsОбъект settings позволяет управлять поведением
аудита:
formFactor – определяет устройство:
"mobile" или "desktop".throttlingMethod – способ эмуляции
скорости сети и процессора: "simulate" или
"devtools".maxWaitForFcp и
maxWaitForLoad – максимальное время
ожидания для первого содержимого на странице и полной загрузки.output – формат отчета:
"html", "json", "csv".onlyCategories – массив категорий для
запуска: ["performance", "seo"].additionalTraceCategories –
расширенные категории для трассировки Chrome, например
"blink.user_timing".Эти настройки позволяют контролировать скорость и глубину анализа, избегая лишнего времени на аудит страниц с большим количеством ресурсов.
audits и кастомизацияПоле audits может содержать:
{
"path": "audits/my-custom-audit.js",
"options": {
"threshold": 5000
}
}
Использование объектов позволяет добавлять собственные аудиты, передавать им параметры и включать их только при определённых условиях. Это особенно полезно для крупных проектов с уникальными требованиями к производительности и SEO.
Категории объединяют отдельные аудиты в логические блоки для отчета. Каждая категория определяется объектом с ключами:
title – отображаемое название категории.description – краткое описание категории.audits – массив идентификаторов аудитов и/или объектов
с настройками для каждого аудита.scoreWeight (опционально) – вес категории при расчете
итоговой оценки.Пример расширенной категории:
"categories": {
"accessibility": {
"title": "Accessibility",
"description": "Проверка доступности веб-контента",
"audits": [
"color-contrast",
{
"id": "image-alt",
"weight": 2
}
]
}
}
groups)Группы используются для организации аудитов внутри категории. Каждая группа задается объектом с ключами:
title – название группы, отображаемое в отчете.description – описание группы.audits – массив идентификаторов аудитов, входящих в
группу.Пример:
"groups": {
"metrics": {
"title": "Ключевые метрики",
"description": "Метрики, влияющие на скорость загрузки",
"audits": ["first-contentful-paint", "largest-contentful-paint"]
}
}
Это позволяет улучшить читаемость отчета, выделяя логические блоки, например, метрики производительности, SEO-проверки или аудит безопасности.
Ключ extends позволяет использовать стандартные
конфигурации и модифицировать их. Можно подключать:
"lighthouse:default" – стандартная конфигурация
Lighthouse."lighthouse:perf" – конфигурация для
производительности."./custom-config.js".При использовании extends все свойства базовой
конфигурации будут объединены с собственными настройками. При конфликте
настроек локальные значения имеют приоритет.
extends – предотвращает
дублирование и облегчает поддержку конфигурации.Эта структура обеспечивает полное управление процессом аудита: от выбора метрик и категорий до настройки отчетов и кастомных аудитов, позволяя адаптировать Lighthouse под любые требования проекта.