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ń.
  • Polegaj na danych wyjściowych JSON z Lighthouse.

Jeśli żadna z tych sytuacji Cię nie dotyczy, przepływ pracy przy uruchamianiu Lighthouse jest taki sam. Informacje o nowych funkcjach i zmianach znajdziesz w artykule Ogłoszenie Lighthouse 3.0.

Zmiany wywołania

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

Flagi interfejsu 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
Bez ograniczania --disable-network-throttling --disable-cpu-throttling --throttling-method=provided
Ograniczanie wykorzystania sieci, bez ograniczania wykorzystania procesora --disable-cpu-throttling --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1
Przeprowadzanie audytów wydajności --perf --preset=perf
Przeprowadzaj audyty 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ą miały wpływ 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 wyjściowe

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 wprowadzono też zmiany powodujące niezgodność kształtu tego obiektu. Zapoznaj się ze zmianami w obiekcie wyników.
  • artifacts Dane zebrane z Chrome podczas kontroli. Wcześniej były one pomieszane z właściwościami LHR.
  • report Sformatowany raport HTML/JSON/CSV w postaci ciągu 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. Jednak kształt tego obiektu zmienił się w wersji 3. Tabela poniżej zawiera wszystkie zmiany.

  • Jeśli wiersz zawiera wartość zarówno w kolumnach v2, jak i v3, oznacza to, że każde odwołanie do właściwości v2 w kodzie należy zastąpić odpowiednikiem wersji v3.
  • Gdy wiersz nie ma wartości w kolumnie v3, dostępne są informacje w kolumnie Uwagi.
  • Pamiętaj, że elementy takie jak ID reprezentują tekst zastępczy.
Usługa w wersji 2 v3-Odpowiednik Uwagi
initialUrl requestedUrl
url finalUrl
generatedTime fetchedTime
reportCategories categories Zmieniono 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ą. Wyniki są zawsze null dla innych trybów wyświetlania, ponieważ nie ma żadnej pojęcie pozytywny lub niezadowalający.
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 uległa zmianie, aby łatwiej było korzystać z urządzeń. 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. Użyj w zamian zasady details.