Структура конфигурационного файла

Конфигурационный файл 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 может содержать:

  • Простые строки – идентификаторы встроенных аудитов Lighthouse.
  • Объекты вида:
{
  "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 под любые требования проекта.