本指南適用於符合下列條件的 Lighthouse 第 2 版使用者:
- 透過 Node 或指令列執行 Lighthouse。
- 使用 Lighthouse 的 JSON 輸出內容。
如果您的環境不適用這些情況,執行 Lighthouse 的工作流程大致相同。 如需新功能總覽,請參閱「發布 Lighthouse 3.0」 新功能和異動
叫用變更
Lighthouse 現在預設會計算模擬效能,節流設定也已大幅 已變更。
CLI 標記
情境 | v2 旗標 | v3 旗標 |
---|---|---|
開發人員工具 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 第 3 版中,節點模組接受與 CLI 相同的設定選項。這是 在第 2 版中忽略了其中許多選項,但卻在第 4 版中 但實際上會影響 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 第 3 版傳回的 JSON 物件現在包含 3 個頂層屬性:
lhr
。稽核結果。「Lighthouse 結果」的 Shorts。基本上,這本質上是 頂層物件,但是第 3 版也針對此物件的形狀,加入破壞性變更。詳情請見 變更結果物件。artifacts
:稽核期間從 Chrome 收集的資料。先前是交錯 LHR 的特性report
。以字串形式呈現的格式化報表 HTML/JSON/CSV。
結果物件的變更
如「全新的 JSON 輸出內容頂層格式」一節所述,稽核結果現在是
可透過 lhr
屬性取得。在第 2 版中,這個物件的內容基本上是
頂層 JSON 輸出內容不過,這個物件本身的形狀在 v3 中已有所變更。下表列出
會列出所有變更。
- 如果資料列在 v2 和 v3 欄中都有值,表示您應該將程式碼中任何對 v2 屬性的參照,替換為 v3 等同項目。
- 如果資料列在 v3 資料欄中沒有值,則 Notes 資料欄會說明 您的選擇。
- 請注意,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 為
數字或二進位檔案其他顯示模式的分數一律為 null ,因為沒有任何
及失敗的概念
|
audits.ID.displayValue |
audits.ID.displayValue |
現在可以是 printf 樣式的引數陣列,用於插入字串內插。 |
audits.ID.debugString |
audits.ID.explanation
audits.ID.errorMessage
audits.ID.warnings
|
debugString 值已轉換為上述三個屬性之一
視其意圖而定
|
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 。 |