Guida alla migrazione di Lighthouse v3

Questa guida è rivolta agli utenti di Lighthouse v2 che:

  • Esegui Lighthouse dal nodo o dalla riga di comando.
  • Affidati all'output JSON di Lighthouse.

Se non si applica al tuo caso, il flusso di lavoro per l'esecuzione di Lighthouse è per lo più lo stesso. Consulta l'annuncio di Lighthouse 3.0 per una panoramica delle novità caratteristiche e modifiche.

Modifiche alla chiamata

Lighthouse ora calcola il rendimento simulato per impostazione predefinita e le impostazioni di limitazione sono state notevolmente modificate.

Flag dell'interfaccia a riga di comando

Scenario Flag v2 Flag v3
Limitazione 3G di DevTools Nessuno (comportamento predefinito) --throttling-method=devtools
Nessuna limitazione --disable-network-throttling --disable-cpu-throttling --throttling-method=provided
Limitazione della rete, nessuna limitazione della CPU --disable-cpu-throttling --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1
Esegui controlli delle prestazioni --perf --preset=perf
Esegui controlli su contenuti misti --mixed-content --preset=mixed-content

Modulo Node

In Lighthouse v3, il modulo Node accetta le stesse opzioni di configurazione dell'interfaccia a riga di comando. Si tratta di un nel senso che molte di queste opzioni venivano ignorate nella versione 2, mentre ora influisce effettivamente sul funzionamento di 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);
}

Modifiche all'output

Nuovo formato di primo livello nell'output JSON

L'oggetto JSON restituito da Lighthouse v3 ora contiene tre proprietà di primo livello:

  • lhr. I risultati dei controlli. È l'abbreviazione di "Lighthouse Results". Si trattava essenzialmente dell'oggetto di primo livello nella versione 2, ma la versione 3 introduce modifiche che provocano un errore anche alla forma di questo oggetto. Consulta Modifiche all'oggetto risultati.
  • artifacts. I dati raccolti da Chrome durante il controllo. In precedenza si mescolavano con le proprietà dell'LHR.
  • report. Il report formattato in formato HTML/JSON/CSV come stringa.

Modifiche all'oggetto risultati

Come menzionato in Nuovo formato di primo livello nell'output JSON, i risultati dei controlli sono ora disponibili tramite la proprietà lhr. Nella versione v2, i contenuti di questo oggetto erano essenzialmente un output JSON di primo livello. Tuttavia, la forma di questo oggetto è cambiata nella versione 3. La tabella riportata di seguito elenca tutte le modifiche.

  • Se una riga contiene un valore in entrambe le colonne v2 e v3, significa che È necessario sostituire qualsiasi riferimento alla proprietà v2 nel codice con l'equivalente v3.
  • Quando una riga non contiene un valore nella colonna v3, la colonna Note descrive le tue opzioni.
  • Tieni presente che elementi come ID rappresentano un testo segnaposto.
Proprietà v2 Equivalente v3 Note
initialUrl requestedUrl
url finalUrl
generatedTime fetchedTime
reportCategories categories Passato da array a oggetto con chiave.
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 I valori possibili sono stati espansi in numeric|binary|manual|informative|not-applicable|error.
audits.ID.score audits.ID.score I punteggi sono sempre un numero compreso tra 0 e 1 (non tra 0 e 100) quando scoreDisplayMode è numerico o binario. I punteggi sono sempre null per altre modalità di visualizzazione, in quanto non nozione di superamento/successo.
audits.ID.displayValue audits.ID.displayValue Ora può essere un array di argomenti in stile Printf per l'interpolazione di stringhe.
audits.ID.debugString audits.ID.explanation audits.ID.errorMessage audits.ID.warnings debugString valori sono stati convertiti in una delle tre proprietà precedenti a seconda delle intenzioni degli utenti.
audits.ID.details audits.ID.details La struttura dei dettagli è cambiata per essere più fruibile. Ogni voce in .items è un oggetto con chiavi affidabili invece di 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 Rimosso. Utilizza invece details.