Este guia é destinado a usuários do Lighthouse v2 que:
- Execute o Lighthouse a partir do Node ou da linha de comando.
- Confie na saída JSON do Lighthouse.
Caso contrário, o fluxo de trabalho para executar o Lighthouse será o mesmo. Consulte Anúncio do Lighthouse 3.0 para ter uma visão geral dos novos recursos e alterações.
Alterações de invocação
O Lighthouse agora calcula o desempenho simulado por padrão, e as configurações de limitação passaram por mudanças significativas.
Sinalizações da CLI
Cenário | Sinalizações da v2 | Sinalizações da v3 |
---|---|---|
Limitação do DevTools 3G | Nenhum (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 |
Realizar auditorias de conteúdo misto | --mixed-content |
--preset=mixed-content |
Módulo de nó
No Lighthouse v3, o módulo do Node aceita as mesmas opções de configuração que a CLI. Essa é uma alteração interruptiva, em que 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 de 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
. Resultados das auditorias. Abreviação de "Lighthouse Results". Esse era essencialmente o objeto de nível superior na v2, mas a v3 também introduz alterações interruptivas na forma desse objeto. Consulte Mudanças no objeto de resultados.artifacts
. Os dados coletados do Chrome durante a auditoria. Isso já estava misturado com as propriedades do LHR.report
. O relatório formatado em HTML/JSON/CSV como uma string.
Alterações no objeto de resultados
Conforme mencionado em Novo formato de nível superior na saída JSON, os resultados das auditorias agora estão
disponíveis pela propriedade lhr
. Na v2, o conteúdo desse objeto era essencialmente a
saída JSON de nível superior. No entanto, a forma desse objeto em si foi alterada na v3. A tabela abaixo
lista todas as mudanças.
- Se uma linha tiver um valor nas colunas v2 e v3, isso significa que é preciso substituir qualquer referência à propriedade v2 no seu código pelo equivalente à v3.
- Quando uma linha não tem um valor na coluna v3, a coluna Observações descreve suas opções.
- Itens como ID representam o texto marcador de posição.
Propriedade v2 | Equivalente a v3 | 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 de 0 a 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á noção 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 debugString foram convertidos em uma das três propriedades acima,
dependendo da intent deles.
|
audits.ID.details |
audits.ID.details |
A estrutura dos detalhes mudou para ser mais consumível. 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
|