Используйте Lighthouse для бюджета производительности

Кэти Хемпениус
Katie Hempenius

Lighthouse теперь поддерживает бюджеты производительности. Эту функцию, известную как LightWallet, можно настроить менее чем за пять минут, и она предоставляет обратную связь о показателях производительности, а также размере и количестве ресурсов страницы.

Установить Маяк

LightWallet доступен в версии Lighthouse v5+ для командной строки.

Для начала установите Lighthouse:

npm install -g lighthouse

Создать бюджет

Создайте файл с именем budget.json . В этот файл добавьте следующий JSON:

[
  {
    "path": "/*",
    "timings": [
      {
        "metric": "interactive",
        "budget": 3000
      },
      {
        "metric": "first-meaningful-paint",
        "budget": 1000
      }
    ],
    "resourceSizes": [
      {
        "resourceType": "script",
        "budget": 125
      },
      {
        "resourceType": "total",
        "budget": 300
      }
    ],
    "resourceCounts": [
      {
        "resourceType": "third-party",
        "budget": 10
      }
    ]
  }
]

В этом примере файла budget.json задаются пять отдельных бюджетов:

  • Бюджет 3000 мс для Time to Interactive.
  • Бюджет в 1000 мс на первую значимую покраску.
  • Бюджет 125 КБ на общий объем JavaScript на странице.
  • Бюджет 300 КБ на общий размер страницы.
  • Бюджет 10 запросов по количеству запросов, сделанных к сторонним источникам.

Полный список поддерживаемых показателей производительности и типов ресурсов см. в разделе «Бюджеты производительности» документации Lighthouse.

Беги Маяк

Запустите Lighthouse, используя флаг --budget-path . Этот флаг сообщает Lighthouse расположение вашего файла бюджета.

lighthouse https://example.com --budget-path=./budget.json

Посмотреть результаты

Если LightWallet настроен правильно, отчет Lighthouse будет содержать раздел «Бюджеты» в категории «Производительность» .

Раздел «Бюджеты» отчета Lighthouse

В версии отчета Lighthouse в формате JSON результаты Lightwallet можно найти в результатах аудита performance-budget .