Guide de migration Lighthouse v3

Ce guide s'adresse aux utilisateurs de la version 2 de Lighthouse qui:

  • Exécutez Lighthouse à partir de Node ou de la ligne de commande.
  • Utilisez la sortie JSON de Lighthouse.

Si ces conditions ne vous concernent pas, votre workflow d'exécution de Lighthouse est presque le même. Consultez la page Annonce de Lighthouse 3.0 pour obtenir un aperçu des nouvelles fonctionnalités et des modifications.

Modifications de l'appel

Lighthouse calcule désormais les performances simulées par défaut, et les paramètres de limitation ont été fortement modifiés.

Indicateurs de la CLI

Scénario Indicateurs v2 Indicateurs v3
Limitation 3G des outils de développement Aucune (comportement par défaut) --throttling-method=devtools
Aucune limitation --disable-network-throttling --disable-cpu-throttling --throttling-method=provided
Limitation du réseau, aucune limitation du processeur --disable-cpu-throttling --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1
Exécuter des audits de performances --perf --preset=perf
Exécuter des audits de contenu mixte --mixed-content --preset=mixed-content

Module de nœud

Dans Lighthouse v3, le module Nœud accepte les mêmes options de configuration que la CLI. Il s'agit d'un changement destructive dans le sens où un grand nombre de ces options ont été ignorées dans la version 2, alors qu'elles auront désormais une incidence sur l'exécution de 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);
}

Modifications des résultats

Nouveau format de premier niveau dans la sortie JSON

L'objet JSON renvoyé par Lighthouse v3 contient désormais trois propriétés de niveau supérieur:

  • lhr. Résultats des audits. Abréviation de "Lighthouse Results". Il s'agissait essentiellement de l'objet de premier niveau dans la version 2, mais la version 3 apporte également des modifications destructives à la forme de cet objet. Consultez la section Modifications apportées à l'objet de résultats.
  • artifacts : données collectées à partir de Chrome lors de l'audit. Elles étaient auparavant mélangées aux propriétés de la LHR.
  • report : rapport au format HTML/JSON/CSV sous forme de chaîne.

Modifications apportées à l'objet de résultats

Comme indiqué dans Nouveau format de premier niveau dans la sortie JSON, les résultats des audits sont désormais disponibles via la propriété lhr. Dans la version 2, le contenu de cet objet constituait essentiellement la sortie JSON de premier niveau. Toutefois, la forme de cet objet lui-même a changé dans la version 3. Le tableau ci-dessous liste toutes les modifications.

  • Si une ligne contient une valeur à la fois dans les colonnes v2 et v3, cela signifie que vous devez remplacer toute référence à la propriété v2 dans votre code par l'équivalent v3.
  • Lorsqu'une ligne ne comporte aucune valeur dans la colonne v3, la colonne Notes décrit les options disponibles.
  • Notez que les éléments tels que ID représentent du texte d'espace réservé.
Propriété v2 v3-équivalent Remarques
initialUrl requestedUrl
url finalUrl
generatedTime fetchedTime
reportCategories categories Passage d'un tableau à un objet à clé.
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 Les valeurs possibles ont été étendues à numeric|binary|manual|informative|not-applicable|error.
audits.ID.score audits.ID.score Les scores sont toujours un nombre compris entre 0 et 1 (et non entre 0 et 100) lorsque scoreDisplayMode est numérique ou binaire. Les scores sont toujours null pour les autres modes d'affichage, car il n'y a pas de notion de réussite/d'échec.
audits.ID.displayValue audits.ID.displayValue Il peut désormais s'agir d'un tableau d'arguments de style printf pour l'interpolation de chaîne.
audits.ID.debugString audits.ID.explanation audits.ID.errorMessage audits.ID.warnings Les valeurs debugString ont été converties dans l'une des trois propriétés ci-dessus en fonction de leur intent.
audits.ID.details audits.ID.details La structure des détails a été modifiée pour faciliter la consommation. Chaque entrée dans .items est un objet avec des clés fiables au lieu 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 Supprimé. Utilisez details à la place.