Lighthouse — это инструмент для аудита веб-страниц, написанный на JavaScript, который анализирует производительность, доступность, SEO и лучшие практики. Одним из основных способов работы с Lighthouse является использование командной строки (CLI — Command Line Interface).
Для начала необходимо установить Lighthouse глобально через
npm:
npm install -g lighthouse
После установки команда lighthouse становится доступной
в терминале, и с её помощью можно запускать аудиты любых
веб-страниц.
Базовая команда для запуска аудита выглядит так:
lighthouse https://example.com
По умолчанию Lighthouse генерирует отчет в формате HTML и выводит его в стандартный вывод терминала.
Ключевые параметры командной строки:
--output — формат отчета. Возможные значения:
html, json, csv. Можно указать
несколько через запятую:
lighthouse https://example.com --output html,json--output-path — путь для сохранения отчета:
lighthouse https://example.com --output html --output-path ./report.html--emulated-form-factor — эмулирует устройство:
desktop, mobile или none.
Например:
lighthouse https://example.com --emulated-form-factor=mobile--only-categories — позволяет запускать аудит только
для конкретных категорий: performance,
accessibility, best-practices,
seo, pwa:
lighthouse https://example.com --only-categories=performance,seoДля сложных проектов удобнее использовать конфигурационный файл в формате JavaScript. Файл может содержать кастомные настройки, например отключение определённых аудитов или настройку скорости эмуляции сети.
Пример lighthouse-config.js:
module.exports = {
extends: 'lighthouse:default',
settings: {
onlyCategories: ['performance', 'seo'],
emulatedFormFactor: 'mobile',
throttling: {
rttMs: 150,
throughputKbps: 1638,
cpuSlowdownMultiplier: 4,
},
},
};
Запуск с использованием конфигурации:
lighthouse https://example.com --config-path=lighthouse-config.js
Для тестирования локальной среды можно использовать
localhost. Необходимо убедиться, что сервер запущен и
доступен по соответствующему порту. Например:
lighthouse http://localhost:3000 --output html --output-path ./local-report.html
Можно использовать флаг --chrome-flags="--headless" для
запуска Chrome в безголовом режиме, что особенно важно для
автоматизации:
lighthouse http://localhost:3000 --chrome-flags="--headless"
Lighthouse CLI идеально подходит для интеграции в процессы CI/CD, позволяя автоматически проверять качество сайта после каждого деплоя.
Примеры использования в скриптах CI:
lighthouse https://example.com --only-categories=performance,accessibility --output json --output-path ./ci-report.json
Затем отчет можно обработать скриптом на Node.js для сравнения метрик с предыдущими результатами и создания уведомлений о снижении производительности.
--quiet — отключает вывод подробной информации в
консоль.--verbose — выводит детализированную отладочную
информацию.--disable-device-emulation — отключает эмуляцию
устройства, что ускоряет аудит на десктопе.--chrome-path — указывает путь к бинарнику Chrome, если
используется нестандартная установка.--throttling-method — задаёт метод ограничения скорости
сети: simulate или devtools.Комбинирование флагов позволяет создавать комплексные отчеты для командной работы:
lighthouse https://example.com \
--output html,json \
--output-path ./reports/report.html \
--only-categories=performance,seo \
--chrome-flags="--headless --no-sandbox" \
--quiet
Такой подход обеспечивает сохранение нескольких форматов отчета, минимизацию вывода в консоль и запуск в безголовом режиме для автоматизированных сценариев.
Хотя CLI является отдельной программой, его можно использовать и как модуль Node.js для программного управления аудитами:
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
(async () => {
const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
const options = { logLevel: 'info', output: 'html', port: chrome.port };
const runnerResult = await lighthouse('https://example.com', options);
const reportHtml = runnerResult.report;
require('fs').writeFileSync('lh-report.html', reportHtml);
await chrome.kill();
})();
Такой метод позволяет интегрировать Lighthouse прямо в тестовые скрипты, запускать динамические проверки и программно обрабатывать результаты аудитов.
Использование Lighthouse через командную строку предоставляет полный контроль над процессом аудита: выбор категорий, форматов отчета, эмуляции устройств и сетевых условий. Это делает CLI универсальным инструментом для локального анализа, автоматизации и интеграции в процессы CI/CD, обеспечивая точные и воспроизводимые метрики веб-страниц.