Lighthouse v3 遷移指南

本指南適用於符合下列條件的 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 中已有所變更。下表列出 會列出所有變更。

  • 如果資料列在 v2v3 欄中都有值,表示您應該將程式碼中任何對 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