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ê, o fluxo de trabalho para executar o Lighthouse será praticamente 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.
Sinalizações 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. Esta é uma alteração interruptiva, no sentido de que muitas dessas opções foram ignoradas na v2. Agora, elas afetarão de fato a forma como o Lighthouse é executado.
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 "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 Mudanças no objeto de resultados.artifacts
: Os dados coletados do Chrome durante a auditoria. Antes, isso era misturado com as propriedades do LHR.report
: o relatório HTML/JSON/CSV formatado como uma string.
Alterações no objeto de resultados
Como 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 essencialmente 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, isso significa que você deve substituir qualquer referência à propriedade da v2 no seu código pelo equivalente da v3.
- Quando uma linha não tiver um valor na coluna v3, a coluna Observações descreverá as opções.
- Itens como ID representam marcadores de posição de texto.
Propriedade v2 | Equivalente à 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éricos ou binários. 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 strings. |
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 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
|