Este guia é para usuários do Lighthouse v2 que:
- Execute o Lighthouse no Node ou na linha de comando.
- Confie na saída JSON do Lighthouse.
Se isso não se aplicar a você, seu fluxo de trabalho para executar o Lighthouse será basicamente o mesmo. Consulte Anúncio do Lighthouse 3.0 para ter uma visão geral dos novos recursos e mudanças.
Mudanças na invocação
O Lighthouse agora calcula a performance simulada por padrão, e as configurações de limitação foram bastante alteradas.
Flags da CLI
Cenário | Flags v2 | Flags v3 |
---|---|---|
Limitação de 3G do DevTools | Nenhuma (comportamento padrão) | --throttling-method=devtools |
Sem limitação | --disable-network-throttling --disable-cpu-throttling |
--throttling-method=provided |
Limitação de rede, sem limitação de CPU | --disable-cpu-throttling |
--throttling-method=devtools --throttling.cpuSlowdownMultiplier=1 |
Realizar auditorias de desempenho | --perf |
--preset=perf |
Executar auditorias de conteúdo misto | --mixed-content |
--preset=mixed-content |
Módulo de nó
No Lighthouse v3, o módulo Node aceita as mesmas opções de configuração da CLI. Essa é uma mudança importante porque muitas dessas opções foram ignoradas na v2, mas agora elas vão afetar a execução do 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);
}
Mudanças na saída
Novo formato de nível superior na saída JSON
O objeto JSON retornado pelo Lighthouse v3 agora contém três propriedades de nível superior:
lhr
. Os resultados das auditorias. Abreviação de "Lighthouse Results" (resultados do Lighthouse). Esse era essencialmente o objeto de nível superior na v2, mas a v3 também introduz mudanças importantes na forma desse objeto. Consulte Alterações no objeto de resultados.artifacts
: os dados coletados do Chrome durante a auditoria. Isso estava anteriormente misturado com as propriedades do LHR.report
: o relatório HTML/JSON/CSV formatado como uma string.
Mudanças no objeto de resultados
Conforme mencionado em Novo formato de nível superior na saída JSON, os resultados das auditorias não estão disponíveis pela propriedade lhr
. Na v2, o conteúdo desse objeto era basicamente a saída JSON de nível superior. No entanto, a forma desse objeto mudou na v3. A tabela abaixo lista todas as mudanças.
- Se uma linha tiver um valor nas colunas v2 e v3, você precisará substituir qualquer referência à propriedade v2 no código pelo equivalente v3.
- Quando uma linha não tem um valor na coluna v3, a coluna Notas descreve suas opções.
- Itens como ID representam marcadores de posição de texto.
Propriedade v2 | v3-Equivalent | Observações |
---|---|---|
initialUrl |
requestedUrl |
|
url |
finalUrl |
|
generatedTime |
fetchedTime |
|
reportCategories |
categories |
Mudança de matriz para um objeto com chave. |
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 |
Os valores possíveis foram expandidos para
numeric|binary|manual|informative|not-applicable|error .
|
audits.ID.score |
audits.ID.score |
As pontuações são sempre um número entre 0 e 1 (não 0-100) quando scoreDisplayMode é
numérico ou binário. As pontuações são sempre null para outros modos de exibição, porque não há
conceito de aprovação/reprovação.
|
audits.ID.displayValue |
audits.ID.displayValue |
Agora pode ser uma matriz de argumentos no estilo printf para interpolação de string. |
audits.ID.debugString |
audits.ID.explanation
audits.ID.errorMessage
audits.ID.warnings
|
Os valores de debugString foram convertidos em uma das três propriedades acima,
dependendo da intenção.
|
audits.ID.details |
audits.ID.details |
A estrutura dos detalhes mudou para ser mais fácil de consumir. Cada entrada em .items
é um objeto com chaves confiáveis em vez de 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 |
Removido. Use details .
|