Questa guida è rivolta agli utenti di Lighthouse 2 che:
- Esegui Lighthouse da Node o dalla riga di comando.
- Fai affidamento sull'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 Annuncio di Lighthouse 3.0.
Modifiche all'invocazione
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 larghezza di banda della rete, nessuna limitazione della CPU | --disable-cpu-throttling |
--throttling-method=devtools --throttling.cpuSlowdownMultiplier=1 |
Eseguire audit sul rendimento | --perf |
--preset=perf |
Eseguire audit dei contenuti misti | --mixed-content |
--preset=mixed-content |
Modulo Node
In Lighthouse v3, il modulo Node accetta le stesse opzioni di configurazione della CLI. 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 "Lighthouse Results". 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 results.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 indicato 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 di questo oggetto è cambiata nella versione 3. La tabella seguente elenca tutte le modifiche.
- Se una riga ha un valore sia nelle colonne v2 che v3, significa che devi sostituire qualsiasi riferimento alla proprietà v2 nel codice con l'equivalente v3.
- Quando una riga non ha un valore nella colonna v3, la colonna Note descrive le opzioni disponibili.
- Tieni presente che elementi come ID rappresentano il 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 le altre modalità di visualizzazione, in quanto non esiste un concetto di superato/non superato.
|
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
|
I valori debugString sono stati convertiti in una delle tre proprietà sopra indicate
in base alla loro intenzione.
|
audits.ID.details |
audits.ID.details |
La struttura dei dettagli è stata modificata per renderla più fruibile. Ogni voce in .items
è un oggetto con chiavi affidabili anziché 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 .
|