Lighthouse — это инструмент для автоматического аудита веб-страниц, встроенный в Chrome DevTools и доступный как отдельный npm-пакет. Для работы в режиме отладки необходимо использовать Node.js версию не ниже 14. Установка производится через команду:
npm install -g lighthouse
После установки библиотеку можно использовать как из командной строки, так и программно через Node.js API:
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
(async () => {
const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
const options = {port: chrome.port};
const runnerResult = await lighthouse('https://example.com', options);
console.log('Lighthouse score:', runnerResult.lhr.score);
await chrome.kill();
})();
Режим отладки (Debugging mode) позволяет получать детализированные логи выполнения и трассировки, что особенно полезно для выявления проблем с производительностью, доступностью или SEO.
Для активации режима отладки в командной строке используется флаг
--verbose или переменная окружения DEBUG:
lighthouse https://example.com --verbose
DEBUG=lighthouse:* lighthouse https://example.com
При использовании Node.js API включение детального логирования
достигается через опцию logLevel:
const options = {
port: chrome.port,
logLevel: 'verbose'
};
Ключевой момент: logLevel: 'verbose'
выводит все стадии аудита, включая внутренние события Chromium,
трассировки сетевых запросов и шаги генерации отчёта.
Режим отладки предоставляет несколько уровней информации:
Для записи логов в файл используется опция
--output-path:
lighthouse https://example.com --verbose --output=json --output-path=report.json
Это позволяет сохранять трассировки и анализировать их с помощью специализированных инструментов, например, Chrome DevTools или Lighthouse Viewer.
Node.js API поддерживает подключение к Chrome через протокол CDP, что позволяет ещё точнее отслеживать внутренние процессы:
const options = {
port: chrome.port,
disableStorageReset: true,
logLevel: 'verbose'
};
const runnerResult = await lighthouse('https://example.com', options);
Особенности:
disableStorageReset: true предотвращает очистку кэша и
локального хранилища между запусками.logLevel: 'verbose' можно получать трассировку
всех команд CDP, что упрощает анализ багов и нестабильного поведения
страниц.В режиме отладки Lighthouse создаёт дополнительные артефакты:
Для визуализации можно использовать Chrome DevTools:
chrome://tracing/..json, созданный
Lighthouse.--headless при массовой
проверке страниц на CI/CD, но для визуальной отладки лучше запускать с
GUI Chrome.verbose помогают выявить узкие места в
производительности и нестандартные сценарии работы страницы.logLevel
с port для многократного подключения к одному экземпляру
Chrome.DEBUG=lighthouse:* для получения
наиболее детальной информации без лишних системных сообщений.disableStorageReset не мешает повторной загрузке
ресурсов.Режим Debugging в Lighthouse позволяет не только анализировать текущую производительность сайта, но и глубоко исследовать причины проблем, делая процесс оптимизации системным и прозрачным.