Dieser Leitfaden richtet sich an Lighthouse v2-Nutzer, die:
- Führen Sie Lighthouse über Node oder die Befehlszeile aus.
- Verwenden Sie die JSON-Ausgabe von Lighthouse.
Wenn diese Punkte nicht auf Sie zutreffen, ist Ihr Workflow für die Ausführung von Lighthouse im Wesentlichen derselbe. Eine Übersicht über die neuen Funktionen und Änderungen finden Sie unter Ankündigung von Lighthouse 3.0.
Änderungen bei der Aufrufabfolge
Lighthouse berechnet jetzt standardmäßig die simulierte Leistung und die Einstellungen für die Drosselung wurden stark geändert.
Befehlszeilen-Flags
Szenario | V2-Flags | V3-Flags |
---|---|---|
3G-Drosselung in den Entwicklertools | Keine (Standardverhalten) | --throttling-method=devtools |
Keine Drosselung | --disable-network-throttling --disable-cpu-throttling |
--throttling-method=provided |
Netzwerkdrosselung, keine CPU-Drosselung | --disable-cpu-throttling |
--throttling-method=devtools --throttling.cpuSlowdownMultiplier=1 |
Leistungsanalysen ausführen | --perf |
--preset=perf |
Prüfungen auf gemischte Inhalte ausführen | --mixed-content |
--preset=mixed-content |
Knotenmodul
In Lighthouse v3 werden für das Node-Modul dieselben Konfigurationsoptionen wie für die Befehlszeile akzeptiert. Dies ist eine gravierende Änderung, da viele dieser Optionen in Version 2 ignoriert wurden, während sie jetzt tatsächlich Auswirkungen auf die Ausführung von Lighthouse haben.
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);
}
Änderungen an der Ausgabe
Neues Top-Level-Format in der JSON-Ausgabe
Das JSON-Objekt, das Lighthouse v3 zurückgibt, enthält jetzt drei Top-Level-Eigenschaften:
lhr
. Die Ergebnisse der Prüfungen. Abkürzung für „Lighthouse Results“. Das war im Wesentlichen das Objekt der obersten Ebene in Version 2. In Version 3 gibt es jedoch auch funktionsgefährdende Änderungen an der Form dieses Objekts. Weitere Informationen finden Sie unter Änderungen am Ergebnisobjekt.artifacts
. Die Daten, die während der Analyse in Chrome erhoben wurden. Bisher waren diese mit den Eigenschaften der LHR vermischt.report
: Der formatierte Bericht im HTML-/JSON-/CSV-Format als String.
Änderungen am Ergebnisobjekt
Wie im Artikel Neues Top-Level-Format in der JSON-Ausgabe erwähnt, sind die Ergebnisse von Audits nicht mehr über die Property lhr
verfügbar. In Version 2 enthielt dieses Objekt im Wesentlichen die JSON-Ausgabe der obersten Ebene. Die Form dieses Objekts hat sich jedoch in Version 3 geändert. In der folgenden Tabelle sind alle Änderungen aufgeführt.
- Wenn eine Zeile sowohl in der Spalte v2 als auch in der Spalte v3 einen Wert hat, sollten Sie alle Verweise auf die V2-Property in Ihrem Code durch das V3-Äquivalent ersetzen.
- Wenn für eine Zeile in der Spalte v3 kein Wert vorhanden ist, werden in der Spalte Hinweise Ihre Optionen beschrieben.
- Elemente wie ID sind Platzhaltertext.
Property vom Typ „v2“ | V3-Äquivalent | Hinweise |
---|---|---|
initialUrl |
requestedUrl |
|
url |
finalUrl |
|
generatedTime |
fetchedTime |
|
reportCategories |
categories |
Wurde von einem Array in ein Objekt mit Schlüssel geändert. |
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 |
Die möglichen Werte wurden auf numeric|binary|manual|informative|not-applicable|error erweitert.
|
audits.ID.score |
audits.ID.score |
Wenn scoreDisplayMode numerisch oder binär ist, sind die Werte immer zwischen 0 und 1 (nicht 0–100). In anderen Anzeigemodi ist die Punktzahl immer null , da es keinen Begriff wie „bestanden“ oder „nicht bestanden“ gibt.
|
audits.ID.displayValue |
audits.ID.displayValue |
Kann jetzt ein Array von printf-Argumenten für die Stringinterpolation sein. |
audits.ID.debugString |
audits.ID.explanation
audits.ID.errorMessage
audits.ID.warnings
|
debugString -Werte wurden je nach Absicht in eine der drei oben genannten Properties umgewandelt.
|
audits.ID.details |
audits.ID.details |
Die Struktur der Details wurde überarbeitet, um sie nutzerfreundlicher zu gestalten. Jeder Eintrag in .items ist ein Objekt mit zuverlässigen Schlüsseln anstelle von 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 |
Entfernt. Verwenden Sie stattdessen details .
|