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 Node.js 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 obecnie domyślnie oblicza symulowaną wydajność, a ustawienia ograniczania zostały znacznie została zmieniona.

Flagi interfejsu wiersza poleceń

Scenariusz Flagi w wersji 2 Flagi wersji 3
Ograniczanie wykorzystania przy użyciu narzędzi deweloperskich przy użyciu narzędzi 3G Brak (działanie domyślne) --throttling-method=devtools
Brak 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
Przeprowadzaj audyty 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ł węzła akceptuje te same opcje konfiguracji co interfejs wiersza poleceń. To jest tę zmianę, ponieważ wiele z tych opcji zostało zignorowanych w wersji 2, podczas gdy obecnie co 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 wyjściowe

Nowy format najwyższego poziomu w danych wyjściowych 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”. W wersji 2 był to obiekt najwyższego poziomu, ale w wersji 3 wprowadzono również zmiany w kształcie tego obiektu. Zobacz Zmiany obiektu wyników.
  • artifacts Dane zebrane z Chrome podczas kontroli. Wcześniej były one przeplatane z właściwościami LHR.
  • report Sformatowany raport HTML/JSON/CSV w postaci ciągu znaków.

Zmiany w obiekcie wyników

Jak wspomnieliśmy w sekcji Nowy, najwyższy format w danych wyjściowych JSON, wyniki kontroli są teraz we właściwości lhr. W wersji v2 zawartość tego obiektu była danych wyjściowych JSON najwyższego poziomu. Jednak kształt tego obiektu zmienił się w wersji 3. Tabela poniżej wyświetli listę wszystkich zmian.

  • Jeśli wiersz zawiera wartość zarówno w kolumnach v2, jak i v3, oznacza to, że wszelkie odwołania do właściwości v2 w kodzie należy zastąpić odpowiednikiem wersji v3.
  • Gdy wiersz nie ma wartości w kolumnie v3, kolumna Uwagi opisuje opcje.
  • Pamiętaj, że elementy takie jak ID reprezentują tekst zastępczy.
Usługa w wersji 2 Odpowiednik wersji 3 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 (nie od 0 do 100), jeśli scoreDisplayMode ma wartość liczbowych lub binarnych. 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 być teraz tablicą argumentów w stylu Printf na potrzeby interpolacji ciągów znaków.
audits.ID.debugString audits.ID.explanation audits.ID.errorMessage audits.ID.warnings debugString wartości zostało przekonwertowanych na jedną z 3 powyższych właściwości w zależności od ich intencji.
audits.ID.details audits.ID.details Struktura szczegółów została zmieniona, aby była bardziej czytelna. Każda pozycja w usłudze .items to obiekt z niezawodnymi kluczami 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.