本指南适用于符合以下条件的 Lighthouse v2 用户:
- 从 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 v3 中,节点模块接受与 CLI 相同的配置选项。这是一个 从某种意义上说,v2 中忽略了许多这些选项,而现在它们 都会影响 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 结果”的简称。这本质上是 是 v2 中的顶级对象,但在 v3 中,此对象在形状方面也发生了重大变更。请参阅 对结果对象的更改。artifacts
。审核时从 Chrome 收集的数据。之前 以及 LHR 的属性report
。采用字符串格式的 HTML/JSON/CSV 格式报告。
对结果对象的更改
如 JSON 输出中的全新顶级格式中所述,现在审核结果为
可通过 lhr
属性获取。在 v2 中,该对象的内容本质上就是
顶级 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 。
|