Migrationsanleitung für Lighthouse Version 3

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.