Questa guida è rivolta agli utenti di Lighthouse v2 che:
- Esegui Lighthouse da Node o dalla riga di comando.
- Affidati all'output JSON di Lighthouse.
Se non si applicano al tuo caso, il flusso di lavoro per l'esecuzione di Lighthouse è praticamente lo stesso. Per una panoramica delle nuove funzionalità e delle modifiche, consulta l'articolo Annuncio di Lighthouse 3.0.
Modifiche alla chiamata
Lighthouse ora calcola il rendimento simulato per impostazione predefinita e le impostazioni di limitazione sono state notevolmente modificate.
Flag della CLI
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 |
Eseguire controlli dei contenuti misti | --mixed-content |
--preset=mixed-content |
Modulo nodo
In Lighthouse v3, il modulo Node accetta le stesse opzioni di configurazione dell'interfaccia a riga di comando. Si tratta di una modifica che comporta una rottura nel senso che molte di queste opzioni sono state ignorate nella versione 2, mentre ora influiscono 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 3 ora contiene tre proprietà di primo livello:
lhr
. I risultati dei controlli. Abbreviazione di "Risultati Lighthouse". Si trattava essenzialmente dell'oggetto di primo livello nella versione 2, ma la versione 3 introduce modifiche che comportano interruzioni anche nella forma di questo oggetto. Consulta Modifiche all'oggetto risultati.artifacts
. I dati raccolti da Chrome durante il controllo. In precedenza, queste informazioni erano mescolate con le proprietà dell'LHR.report
. Il report HTML/JSON/CSV formattato come stringa.
Modifiche all'oggetto risultati
Come menzionato in Nuovo formato di primo livello nell'output JSON, i risultati dei controlli non sono disponibili tramite la proprietà lhr
. Nella versione 2, i contenuti di questo oggetto erano essenzialmente l'output JSON di primo livello. Tuttavia, la forma dell'oggetto è cambiata nella versione 3. La tabella seguente elenca tutte le modifiche.
- Se una riga contiene un valore in entrambe le colonne v2 e v3, significa che devi sostituire qualsiasi riferimento alla proprietà v2 nel tuo codice con l'equivalente v3.
- Quando una riga non contiene un valore nella colonna v3, le opzioni sono descritte nella colonna Note.
- Tieni presente che elementi come ID rappresentano un testo segnaposto.
Proprietà v2 | v3-Equivalent | Note |
---|---|---|
initialUrl |
requestedUrl |
|
url |
finalUrl |
|
generatedTime |
fetchedTime |
|
reportCategories |
categories |
È stato modificato 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 a
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 0-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. Usa invece il criterio details .
|