Lighthouse — это инструмент для аудита производительности, доступности и SEO веб-приложений. Управление его запуском осуществляется через набор параметров, которые позволяют гибко настраивать процесс анализа страниц.
Lighthouse может быть интегрирован в проекты через пакет
lighthouse:
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
(async () => {
const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
const options = { port: chrome.port, output: 'html', onlyCategories: ['performance'] };
const runnerResult = await lighthouse('https://example.com', options);
await chrome.kill();
})();
Здесь параметры chromeFlags управляют поведением Chrome,
а options задают настройки анализа.
outputОписание: определяет формат отчета.
Возможные значения:
html — визуальная версия отчета.json — структурированные данные для программной
обработки.csv — табличный формат для аналитики.Пример использования:
const options = { output: 'json' };
onlyCategoriesПозволяет выбрать конкретные категории аудита:
'performance',
'accessibility', 'best-practices',
'seo', 'pwa'.const options = { onlyCategories: ['seo', 'accessibility'] };
Это ускоряет аудит, исключая ненужные категории.
emulatedFormFactorЭмулирует устройство для проверки адаптивности:
Возможные значения:
mobile — мобильная версия.desktop — десктопная версия.Пример настройки:
const options = { emulatedFormFactor: 'mobile' };
Эта опция влияет на метрики производительности и доступности, так как разные форм-факторы загружают страницы по-разному.
throttlingКонтролирует эмуляцию сети и процессора:
const options = {
throttling: {
rttMs: 150,
throughputKbps: 1638.4,
cpuSlowdownMultiplier: 4,
}
};
rttMs — задержка сети.throughputKbps — пропускная способность.cpuSlowdownMultiplier — множитель замедления CPU для
имитации мобильного устройства.Эта настройка важна для точного измерения времени загрузки и First Contentful Paint.
maxWaitForFcp и maxWaitForLoadУстанавливает максимальное время ожидания ключевых событий:
const options = {
maxWaitForFcp: 15 * 1000,
maxWaitForLoad: 35 * 1000
};
maxWaitForFcp — максимальное время ожидания First
Contentful Paint.maxWaitForLoad — максимальное время ожидания полной
загрузки страницы.Эти параметры помогают избежать зависаний при медленном соединении или тяжелых страницах.
localeЗадает язык отчета:
const options = { locale: 'ru' };
Используется для вывода всех описаний аудитов и рекомендаций на выбранном языке.
screenEmulationПозволяет детально настроить размеры экрана и плотность пикселей:
const options = {
screenEmulation: {
width: 360,
height: 640,
deviceScaleFactor: 2,
mobile: true,
}
};
width и height — размеры экрана.deviceScaleFactor — коэффициент плотности
пикселей.mobile — флаг мобильного устройства.Эта настройка более гибкая, чем emulatedFormFactor, и
позволяет тестировать нестандартные разрешения.
disableStorageResetОтключает очистку локального хранилища перед запуском аудита:
const options = { disableStorageReset: true };
Это полезно, если необходимо сохранять состояние сессии или авторизацию для тестирования приватных страниц.
extraHeadersДобавляет произвольные HTTP-заголовки к запросам:
const options = {
extraHeaders: { 'Authorization': 'Bearer token' }
};
Используется для обхода защищенных API или страниц, требующих аутентификацию.
portУказывает порт для подключения к запущенному экземпляру Chrome:
const options = { port: 9222 };
Необходим при интеграции с уже запущенными или удаленными экземплярами браузера.
Все параметры можно комбинировать для сложных сценариев:
const options = {
output: 'json',
onlyCategories: ['performance', 'seo'],
emulatedFormFactor: 'mobile',
throttling: {
rttMs: 150,
throughputKbps: 1638.4,
cpuSlowdownMultiplier: 4,
},
maxWaitForFcp: 15000,
maxWaitForLoad: 35000,
locale: 'ru',
disableStorageReset: false,
};
Такой подход позволяет получить максимально точный и контролируемый аудит страницы.