Библиотека Lighthouse предоставляет мощный механизм настройки аудитов через использование пресетов конфигураций. Пресеты позволяют задать заранее определённый набор правил, категорий и аудитов, что значительно упрощает запуск анализа для стандартных случаев или специфических сценариев.
Lighthouse поставляется с несколькими встроенными пресетами, каждый из которых оптимизирован под конкретную цель анализа:
lighthouse:default — стандартный набор
аудитов, включающий все основные категории: производительность,
доступность, лучшие практики, SEO и PWA. Используется для комплексного
анализа страницы.lighthouse:perf — пресет,
фокусированный на производительности. Отключает аудиты, не относящиеся к
скорости загрузки и интерактивности страницы.lighthouse:seo — оптимизирован для
проверки поисковой оптимизации. Включает только SEO-аудиты.lighthouse:pwa — пресет для анализа
прогрессивных веб-приложений, проверяет соответствие стандартам
PWA.lighthouse:accessibility —
концентрируется на доступности интерфейса для пользователей с
ограниченными возможностями.Каждый из этих пресетов может использоваться как точка отправления для создания собственных кастомных конфигураций.
Пресет в Lighthouse представляет собой объект конфигурации, содержащий следующие ключевые секции:
{
extends: 'lighthouse:default',
settings: {
onlyCategories: ['performance', 'accessibility'],
emulatedFormFactor: 'mobile',
throttlingMethod: 'simulate'
},
audits: [
'first-contentful-paint',
'largest-contentful-paint',
'accessibility/aria-roles'
],
categories: {
performance: { weight: 1.0 },
accessibility: { weight: 0.5 }
}
}
extends — позволяет наследовать
настройки существующего пресета. Это основной механизм создания
кастомных конфигураций без необходимости копировать все аудиты
вручную.settings — глобальные настройки
запуска аудитов, включающие категории, форм-фактор, методы эмуляции сети
и CPU.audits — список аудитов, которые
необходимо включить или изменить.categories — настройки категорий, где
можно изменить веса, порядок и видимость.Аудиты можно включать, отключать и настраивать их параметры:
audits.disabled: true.settings или через audits[].options.
Пример:audits: [
{
id: 'largest-contentful-paint',
options: { maxNumericValue: 2500 }
}
]
Lighthouse поддерживает цепочку наследования, что позволяет создавать иерархию конфигураций. При этом:
Пример наследования:
{
extends: 'lighthouse:perf',
settings: {
throttlingMethod: 'devtools',
onlyCategories: ['performance']
}
}
perf, seo) для ускорения анализа.lighthouse:default, изменяя только необходимые
параметры.mobile и учитывать мобильную сеть.Lighthouse позволяет применять пресеты программно через Node.js API:
import lighthouse from 'lighthouse';
import chromeLauncher from 'chrome-launcher';
const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
const options = { port: chrome.port, configPath: './my-custom-config.js' };
const runnerResult = await lighthouse('https://example.com', options);
await chrome.kill();
configPath указывает путь к файлу с пресетом.extends: 'lighthouse:perf') или полностью кастомный.Использование пресетов обеспечивает стандартизированный, повторяемый и масштабируемый подход к аудиту веб-приложений. Это особенно важно при анализе большого количества страниц или интеграции Lighthouse в автоматизированные пайплайны разработки.