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 è sostanzialmente lo stesso. Consulta la pagina Annuncio di Lighthouse 3.0 per una panoramica delle nuove funzionalità e modifiche.
Modifiche alla chiamata
Lighthouse ora calcola le prestazioni simulate per impostazione predefinita e le impostazioni di limitazione sono state modificate in modo significativo.
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 del contenuto misto | --mixed-content |
--preset=mixed-content |
Modulo nodo
In Lighthouse v3, il modulo Nodo accetta le stesse opzioni di configurazione dell'interfaccia a riga di comando. Questa è una modifica che provoca un errore, perché molte di queste opzioni sono state ignorate nella versione 2, mentre ora influiranno sull'esecuzione 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. Short di "Lighthouse Results". Questo era essenzialmente l'oggetto di primo livello nella versione 2, ma la versione 3 introduce anche cambiamenti che provocano un errore nella forma di questo oggetto. Consulta Modifiche all'oggetto dei risultati.artifacts
. I dati raccolti da Chrome durante il controllo. In precedenza, questo aspetto era stato mescolato con le proprietà dell'LHR.report
. Il report formattato HTML/JSON/CSV come stringa.
Modifiche all'oggetto dei 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. Nella tabella seguente sono elencate tutte le modifiche.
- Se una riga ha 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 ha un valore nella colonna v3, le opzioni vengono descritte nella colonna Note.
- Tieni presente che elementi come ID rappresentano un testo segnaposto.
Proprietà v2 | Equivalente v3 | Note |
---|---|---|
initialUrl |
requestedUrl |
|
url |
finalUrl |
|
generatedTime |
fetchedTime |
|
reportCategories |
categories |
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 è previsto alcun concetto di superamento o superamento.
|
audits.ID.displayValue |
audits.ID.displayValue |
Ora può essere un array di argomenti di tipo printf per l'interpolazione delle stringhe. |
audits.ID.debugString |
audits.ID.explanation
audits.ID.errorMessage
audits.ID.warnings
|
I valori debugString sono stati convertiti in una delle tre proprietà precedenti
a seconda del loro intent.
|
audits.ID.details |
audits.ID.details |
La struttura dei dettagli è cambiata per essere più consumabile. 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. Usa invece il criterio details .
|