Este guia é destinado a usuários do Lighthouse v2 que:
- Execute o Lighthouse no Node ou na linha de comando.
- Use a 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 das novas recursos e mudanças da empresa.
Mudanças na invocação
O Lighthouse agora calcula o desempenho simulado por padrão, e as configurações de limitação têm sido bastante mudou.
Sinalizações da CLI
Cenário | Sinalizações da v2 | Sinalizações da 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 |
Realizar 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 que a CLI. Esta é uma alteração interruptiva, no sentido de que muitas dessas opções foram ignoradas na v2, mas agora afetam o funcionamento 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 "Resultados do Lighthouse". Esse foi essencialmente 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. 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
disponíveis pela propriedade lhr
. Na v2, o conteúdo desse objeto era essencialmente o
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 tem um valor nas colunas v2 e v3, isso significa que você deve substituir todas as referências à propriedade da v2 em seu código pelo equivalente da 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 do marcador de posição.
Propriedade da v2 | Equivalente à v3 | Observações |
---|---|---|
initialUrl |
requestedUrl |
|
url |
finalUrl |
|
generatedTime |
fetchedTime |
|
reportCategories |
categories |
Alterado 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, já que não há
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
|