Guia de migração do Lighthouse v3

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