Przewodnik po migracji do Lighthouse w wersji 3

Ten przewodnik jest przeznaczony dla użytkowników Lighthouse w wersji 2, którzy:

  • Uruchom Lighthouse z poziomu Node lub wiersza poleceń.
  • Korzystaj z danych wyjściowych w formacie JSON Lighthouse.

Jeśli Cię to nie dotyczy, proces uruchamiania Lighthouse przebiega w większości tak samo. Informacje o nowych funkcjach i zmianach znajdziesz w artykule Ogłoszenie Lighthouse 3.0.

Zmiany wywołania

Lighthouse oblicza teraz domyślnie symulowaną wydajność, a ustawienia ograniczania zostały znacznie zmienione.

Flagi wiersza poleceń

Scenariusz Flagi w wersji 2 Flagi v3
Ograniczanie przy użyciu Narzędzi deweloperskich do 3G Brak (zachowanie domyślne) --throttling-method=devtools
Brak ograniczania --disable-network-throttling --disable-cpu-throttling --throttling-method=provided
Ograniczanie wykorzystania sieci, brak ograniczania wykorzystania procesora --disable-cpu-throttling --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1
Przeprowadzanie audytów wydajności --perf --preset=perf
Przeprowadzanie kontroli treści mieszanych --mixed-content --preset=mixed-content

Moduł węzła

W Lighthouse w wersji 3 moduł Node akceptuje te same opcje konfiguracji co interfejs wiersza poleceń. Jest to zmiana istotna, ponieważ wiele z tych opcji było ignorowanych w wersji 2, a teraz będą one wpływać na działanie 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);
}

Zmiany w wyjściu

Nowy format najwyższego poziomu w danych wyjściowych w formacie JSON

Obiekt JSON zwracany przez Lighthouse w wersji 3 zawiera teraz 3 właściwości najwyższego poziomu:

  • lhr. Wyniki audytów. Skrót od „Lighthouse Results” (wyniki Lighthouse). W wersji 2 był to obiekt najwyższego poziomu, ale w wersji 3 wprowadziliśmy też zmiany w kształcie tego obiektu. Zapoznaj się z zmianami w obiekcie wyników.
  • artifacts. Dane zebrane z Chrome podczas sprawdzania. Wcześniej były one pomieszane z właściwościami LHR.
  • report. Sformatowany raport HTML/JSON/CSV jako ciąg znaków.

Zmiany w obiekcie wyników

Jak wspomniano w artykule Nowy format najwyższego poziomu w wyjściowym pliku JSON, wyniki audytów nie są dostępne w przypadku właściwości lhr. W wersji 2 zawartość tego obiektu była w podstawie wyjściowym plikiem JSON najwyższego poziomu. W wersji 3 zmienił się jednak kształt tego obiektu. W tabeli poniżej znajdziesz wszystkie zmiany.

  • Jeśli wiersz ma wartość w kolumnach v2v3, oznacza to, że w kodzie należy zastąpić wszystkie odwołania do właściwości v2 odpowiednikami v3.
  • Jeśli w kolumnie v3 nie ma wartości, w kolumnie Uwagi znajdziesz opis opcji.
  • Pamiętaj, że elementy takie jak ID to tekst zastępczy.
Usługa w wersji 2 v3-Equivalent Uwagi
initialUrl requestedUrl
url finalUrl
generatedTime fetchedTime
reportCategories categories Zmiana z tablicy na obiekt z kluczem.
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 Możliwe wartości zostały rozszerzone do numeric|binary|manual|informative|not-applicable|error.
audits.ID.score audits.ID.score Wyniki są zawsze liczbą z zakresu od 0 do 1 (a nie 0–100), gdy scoreDisplayMode jest liczbą lub binarną. W innych trybach wyświetlania wyniki są zawsze null, ponieważ nie ma pojęcia „zaliczenie/niezaliczenie”.
audits.ID.displayValue audits.ID.displayValue Może teraz być tablicą argumentów w formacie printf do interpolacji ciągu znaków.
audits.ID.debugString audits.ID.explanation audits.ID.errorMessage audits.ID.warnings Wartości debugString zostały przekonwertowane na jedną z 3 właściwości wymienionych powyżej w zależności od ich zamiaru.
audits.ID.details audits.ID.details Struktura szczegółów została zmieniona, aby była bardziej czytelna. Każdy wpis w .items jest obiektem z kluczami niezawodnymi zamiast 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 Usunięto. Zamiast tego użyj details.