Это руководство предназначено для пользователей Lighthouse v2, которые:
- Запустите Lighthouse из Node или из командной строки.
- Положитесь на выходные данные Lighthouse в формате JSON.
Если это к вам не относится, то ваш рабочий процесс при запуске Lighthouse в основном такой же. См. «Анонс Lighthouse 3.0» для обзора новых функций и изменений.
Изменения вызова
Lighthouse теперь по умолчанию рассчитывает смоделированную производительность, а настройки регулирования были сильно изменены.
Флаги CLI
| Сценарий | Флаги v2 | Флаги v3 | 
|---|---|---|
| DevTools Регулирование 3G | Нет (поведение по умолчанию) | --throttling-method=devtools | 
| Нет регулирования | --disable-network-throttling --disable-cpu-throttling | --throttling-method=provided | 
| Регулирование сети, отсутствие регулирования ЦП | --disable-cpu-throttling | --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1 | 
| Проведите аудит производительности | --perf | --preset=perf | 
| Проведите аудит смешанного контента | --mixed-content | --preset=mixed-content | 
Узловой модуль
В Lighthouse v3 модуль Node принимает те же параметры конфигурации, что и CLI. Это кардинальное изменение в том смысле, что многие из этих опций были проигнорированы в версии 2, тогда как теперь они действительно будут влиять на работу Lighthouse.
const fs = require('fs');
const lighthouse = require('lighthouse');
async function run() {
  // `onlyCategories` was previously only available as a config setting.
  // `output` was previously only available in CLI.
  const flags = {onlyCategories: ['performance'], output: 'html'};
  const html = (await lighthouse('https://google.com/', flags)).report;
  fs.writeFileSync('report.html', html);
}
Изменения вывода
Новый формат верхнего уровня в выводе JSON.
Объект JSON, возвращаемый Lighthouse v3, теперь содержит три свойства верхнего уровня:
-  lhr. Результаты проверок. Сокращение от «Результаты маяка». По сути, это был объект верхнего уровня в версии 2, но в версии 3 также внесены серьезные изменения в форму этого объекта. См. Изменения в объекте результатов .
-  artifacts. Данные, собранные из Chrome во время аудита. Ранее это было смешано со свойствами LHR.
-  report. Отчет в формате HTML/JSON/CSV в виде строки.
Изменения в объекте результатов
 Как упоминалось в разделе «Новый формат верхнего уровня в выводе JSON» , результаты аудита недоступны через свойство lhr . В версии 2 содержимое этого объекта по существу представляло собой вывод JSON верхнего уровня. Однако форма самого этого объекта изменилась в версии 3. В таблице ниже перечислены все изменения.
- Если строка имеет значение как в столбцах v2 , так и в столбцах v3 , это означает, что вам следует заменить любую ссылку на свойство v2 в вашем коде эквивалентом v3.
- Если строка не имеет значения в столбце v3 , столбец «Примечания» описывает ваши варианты.
- Обратите внимание, что такие элементы, как ID представляют собой текст-заполнитель.
| v2 Свойство | v3-эквивалент | Примечания | 
|---|---|---|
| initialUrl | requestedUrl | |
| url | finalUrl | |
| generatedTime | fetchedTime | |
| reportCategories | categories | Изменен массив на объект с ключом. | 
| reportGroups | categoryGroups | |
| audits. ID .name | audits. ID .id | |
| audits. ID .description | audits. ID .title | |
| audits. ID .helpText | audits. ID .description | |
| audits. ID .scoringMode | audits. ID .scoreDisplayMode | Возможные значения расширены до numeric|binary|manual|informative|not-applicable|error. | 
| audits. ID .score | audits. ID .score | Оценки всегда представляют собой число от 0 до 1 (не от 0 до 100), если scoreDisplayModeимеет числовое или двоичное значение. Для других режимов отображения баллы всегда равныnull, поскольку не существует понятия «прошел/не прошел». | 
| audits. ID .displayValue | audits. ID .displayValue | Теперь может быть массивом аргументов в стиле printf для интерполяции строк. | 
| audits. ID .debugString | audits. ID .explanationaudits. ID .errorMessageАудитaudits. ID .errorMessageaudits. ID .warnings | Значения debugStringбыли преобразованы в одно из трех вышеперечисленных свойств в зависимости от их назначения. | 
| audits. ID .details | audits. ID .details | Структура деталей изменилась и стала более потребляемой. Каждая запись в .itemsпредставляет собой объект с надежными ключами вместоany[]. | 
| audits. ID .error | audits. ID .scoreDisplayMode === 'error' | |
| audits. ID .notApplicable | audits. ID .scoreDisplayMode === 'not-applicable' | |
| audits. ID .informative | audits. ID .scoreDisplayMode === 'informative' | |
| audits. ID .manual | audits. ID .scoreDisplayMode === 'manual' | |
| audits. ID .extendedInfo | Удаленный. Вместо этого используйте details. |