このガイドは、次の条件を満たす Lighthouse v2 ユーザーを対象としています。
- Node またはコマンドラインから Lighthouse を実行します。
- Lighthouse の JSON 出力を利用する。
上記に当てはまらない場合、Lighthouse の実行のワークフローはほぼ同じです。新機能と変更点の概要については、Lighthouse 3.0 のお知らせをご覧ください。
呼び出しの変更
Lighthouse ではシミュレートされたパフォーマンスがデフォルトで計算されるようになり、スロットリング設定が大幅に変更されました。
CLI フラグ
| シナリオ | v2 フラグ | v3 フラグ | 
|---|---|---|
| DevTools 3G スロットリング | なし(デフォルトの動作) | --throttling-method=devtools | 
| スロットリングなし | --disable-network-throttling --disable-cpu-throttling | --throttling-method=provided | 
| ネットワーク スロットリング、CPU スロットリングなし | --disable-cpu-throttling | --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1 | 
| パフォーマンス監査を実行する | --perf | --preset=perf | 
| 混合コンテンツの監査を実施する | --mixed-content | --preset=mixed-content | 
ノード モジュール
Lighthouse v3 の Node モジュールでは、CLI と同じ設定オプションを使用できます。これは、これらのオプションの多くが v2 では無視されていたのに対し、v3 では 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);
}
出力の変更
JSON 出力の新しいトップレベル形式
Lighthouse v3 が返す JSON オブジェクトには、次の 3 つのトップレベル プロパティが含まれるようになりました。
- lhr。監査の結果。「Lighthouse Results」の略称。これは基本的に v2 の最上位オブジェクトでしたが、v3 ではこのオブジェクトの形状にも互換性を破る変更が導入されています。結果オブジェクトの変更をご覧ください。
- artifacts。監査中に Chrome から収集されたデータ。これまでは、これは LHR のプロパティと混同されていました。
- report。書式設定されたレポートの HTML / JSON / CSV を文字列として返します。
結果オブジェクトの変更
JSON 出力の新しいトップレベル形式で説明したように、監査の結果は lhr プロパティで利用できなくなりました。v2 では、このオブジェクトの内容は基本的に最上位の JSON 出力でした。ただし、v3 ではこのオブジェクト自体の形状が変更されています。以下の表にすべての変更点を示します。
- 行の v2 列と v3 列の両方に値が含まれている場合は、コード内の v2 プロパティへの参照を v3 と同等のものに置き換える必要があります。
- 行の v3 列に値がない場合、[メモ] 列にオプションが記載されています。
- ID などの項目はプレースホルダ テキストを表します。
| v2 プロパティ | v3 と同等の機能 | メモ | 
|---|---|---|
| initialUrl | requestedUrl | |
| url | finalUrl | |
| generatedTime | fetchedTime | |
| reportCategories | categories | 配列からキー付きオブジェクトに変更しました。 | 
| 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 | 有効な値が numeric|binary|manual|informative|not-applicable|errorに拡張されました。 | 
| audits.ID.score | audits.ID.score | scoreDisplayModeの場合、スコアは常に 0 ~ 1 の数値です(0 ~ 100 ではありません)。
      数値またはバイナリです他の表示モードではスコアが常にnullになるため、
      概念を見ていきましょう。 | 
| audits.ID.displayValue | audits.ID.displayValue | 文字列の補間に使用する printf スタイルの引数の配列を指定できるようになりました。 | 
| audits.ID.debugString | audits.ID.explanationaudits.ID.errorMessageaudits.ID.warnings | debugString値は、その意図に応じて、上記の 3 つのプロパティのいずれかに変換されています。 | 
| audits.ID.details | audits.ID.details | 詳細の構造がより使いやすくなりました。 .itemsの各エントリは、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 | 削除しました。 detailsを代わりに使用してください。 |