Параметры запуска

Lighthouse — это инструмент для аудита производительности, доступности и SEO веб-приложений. Управление его запуском осуществляется через набор параметров, которые позволяют гибко настраивать процесс анализа страниц.


Запуск через Node.js

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,
};

Такой подход позволяет получить максимально точный и контролируемый аудит страницы.