Migrationsanleitung für Lighthouse Version 3

Dieser Leitfaden richtet sich an Nutzer von Lighthouse Version 2, die:

  • Führen Sie Lighthouse über Node oder die Befehlszeile aus.
  • Die JSON-Ausgabe von Lighthouse verwenden

Wenn dies nicht auf Sie zutrifft, ist Ihr Workflow zum Ausführen von Lighthouse größtenteils derselbe. Unter Lighthouse 3.0 finden Sie einen Überblick über die neuen Funktionen und Änderungen.

Aufrufänderungen

Lighthouse berechnet jetzt standardmäßig die simulierte Leistung und die Drosselungseinstellungen wurden stark geändert.

Befehlszeilen-Flags

Szenario v2-Flags v3-Flags
Entwicklertools – 3G-Drosselung Keine (Standardeinstellung) --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
Leistungsüberprüfungen durchführen --perf --preset=perf
Gemischte Inhaltsprüfungen ausführen --mixed-content --preset=mixed-content

Knotenmodul

In Lighthouse v3 akzeptiert das Node-Modul die gleichen Konfigurationsoptionen wie die Befehlszeile. Dies ist eine funktionsgefährdende Änderung, da viele dieser Optionen in Version 2 ignoriert wurden. Jetzt wirken sie sich jedoch auf die Ausführung von Lighthouse aus.

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);
}

Ausgabeänderungen

Neues Top-Level-Format in der JSON-Ausgabe

Das JSON-Objekt, das Lighthouse v3 zurückgibt, enthält jetzt drei Attribute auf oberster Ebene:

  • lhr: Die Ergebnisse der Audits. Abkürzung für „Lighthouse Results“. Dies war im Wesentlichen das übergeordnete Objekt in Version 2. In Version 3 wurden jedoch auch funktionsgefährdende Änderungen an der Form des Objekts vorgenommen. Weitere Informationen finden Sie unter Änderungen am Ergebnisobjekt.
  • artifacts. Die bei der Prüfung von Chrome erhobenen Daten. Dies wurde zuvor mit den Eigenschaften des LHR vermischt.
  • report: Der formatierte HTML-/JSON-Bericht/CSV-Bericht als String.

Änderungen am Ergebnisobjekt

Wie unter Neues Top-Level-Format in der JSON-Ausgabe erwähnt, sind die Ergebnisse der Prüfungen nicht über das Attribut lhr verfügbar. In Version 2 war der Inhalt dieses Objekts im Wesentlichen die JSON-Ausgabe der obersten Ebene. Die Form des Objekts selbst hat sich in Version 3 jedoch geändert. In der folgenden Tabelle sind alle Änderungen aufgeführt.

  • Wenn eine Zeile einen Wert in den Spalten v2 und v3 hat, bedeutet dies, dass Sie alle Verweise auf die V2-Property in Ihrem Code durch das v3-Äquivalent ersetzen müssen.
  • Wenn eine Zeile in der Spalte v3 keinen Wert hat, werden Ihre Optionen in der Spalte Anmerkungen beschrieben.
  • Beachten Sie, dass Elemente wie ID Platzhaltertext darstellen.
v2-Property v3-Äquivalent Hinweise
initialUrl requestedUrl
url finalUrl
generatedTime fetchedTime
reportCategories categories Geändert von Array in ein verschlüsseltes Objekt.
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 Mögliche Werte wurden auf numeric|binary|manual|informative|not-applicable|error erweitert.
audits.ID.score audits.ID.score Werte sind immer eine Zahl zwischen 0 und 1 (nicht 0 bis 100), wenn scoreDisplayMode numerisch oder binär ist. Bei anderen Anzeigemodi sind die Punktzahlen immer null, da es keine Erfolgs- oder Fehlfunktion gibt.
audits.ID.displayValue audits.ID.displayValue Kann jetzt ein Array mit Argumenten im printf-Stil 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 hat sich geändert, um sie besser nutzbar zu machen. 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.