Ten przewodnik jest przeznaczony dla użytkowników Lighthouse w wersji 2, którzy:
- Uruchom Lighthouse z poziomu Node lub z wiersza poleceń.
- Polegaj na danych wyjściowych JSON z Lighthouse.
Jeśli w Twoim przypadku żaden z tych warunków nie występuje, oznacza to, że przepływ pracy związany z Lighthouse jest w większości taki sam. W artykule Przedstawiamy Lighthouse 3.0 znajdziesz omówienie nowych funkcji i zmian.
Zmiany wywołań
Teraz Lighthouse domyślnie oblicza symulowaną wydajność, a ustawienia ograniczania wykorzystania uległy znacznej zmianie.
Flagi interfejsu wiersza poleceń
Scenariusz | Flagi wersji 2 | Flagi wersji 3 |
---|---|---|
Ograniczanie 3G w Narzędziach deweloperskich | Brak (działanie domyślne) | --throttling-method=devtools |
Bez 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 |
Przeprowadzaj audyty wydajności | --perf |
--preset=perf |
Przeprowadź 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ń. Jest to przełomowa zmiana, ponieważ wiele z tych opcji zostało zignorowanych w wersji 2, ale teraz będą one 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 w danych wyjściowych
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 angielskiej nazwy „Lighthouse Results”. W wersji 2 był to zasadniczo obiekt najwyższego poziomu, ale w wersji 3 wprowadzaliśmy też przełamujące zmiany w kształcie tego obiektu. Zapoznaj się z sekcją Zmiany w obiekcie wyników.artifacts
. Dane zebrane z Chrome podczas kontroli. Wcześniej łączyło się to z właściwościami LHR.report
. Sformatowany raport HTML/JSON/CSV jako ciąg znaków.
Zmiany w obiekcie wyników
Jak wspomnieliśmy w sekcji Nowy format najwyższego poziomu w danych wyjściowych JSON, wyniki kontroli nie są dostępne w usłudze lhr
. W wersji 2 zawartość tego obiektu stanowiła zasadniczo dane wyjściowe JSON najwyższego poziomu. W wersji 3 kształt tego obiektu zmienił się jednak. Poniższa tabela zawiera wszystkie zmiany.
- Jeśli wiersz zawiera wartość zarówno w kolumnach v2, jak i v3, oznacza to, że wszystkie odniesienia do właściwości v2 w kodzie musisz zastąpić odpowiednikiem w wersji v3.
- Jeśli wiersz nie ma wartości w kolumnie v3, w kolumnie Uwagi znajdziesz opis dostępnych opcji.
- Pamiętaj, że elementy takie jak ID to tekst zastępczy.
Usługa w wersji 2 | Odpowiednik w 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 powiększone do numeric|binary|manual|informative|not-applicable|error .
|
audits.ID.score |
audits.ID.score |
Gdy scoreDisplayMode ma wartość liczbową lub binarną, wyniki są zawsze liczbą z zakresu od 0 do 1 (nie od 0 do 100). W przypadku innych trybów wyświetlania wyniki zawsze wynoszą null , ponieważ nie występuje tu zasada zaliczenia/niezaliczenia.
|
audits.ID.displayValue |
audits.ID.displayValue |
Może teraz być tablicą argumentów w stylu 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 do jednej z 3 powyższych właściwości w zależności od ich intencji.
|
audits.ID.details |
audits.ID.details |
Struktura szczegółów uległa zmianie, dzięki czemu łatwiej jest je wykorzystać. Każdy wpis w .items jest obiektem 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 .
|