このガイドは、次の条件を満たす 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 を文字列として返します。
results オブジェクトの変更
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.explanation
audits.ID.errorMessage
audits.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 を代わりに使用してください。
|