Lighthouse配置对象是定制Lighthouse以适合您的用例的主要方法。使用自定义配置,您可以限制要运行的审核,在特殊情况下添加页面的附加负载,添加您自己的自定义检查,调整评分,等等。
阅读更多有关Lighthouse 体系结构的信息。
使用
通过CLI使用Lighthouse或自己使用npm模块时,可以指定自定义配置文件。
custom-config.js
module.exports = {
extends: 'lighthouse:default',
settings: {
onlyAudits: [
'first-meaningful-paint',
'speed-index',
'first-cpu-idle',
'interactive',
],
},
};
CLI
lighthouse --config-path=path/to/custom-config.js https://example.com
Node
const lighthouse = require('lighthouse');
const config = require('./path/to/custom-config.js');
lighthouse('https://example.com/', {port: 9222}, config);
属性
Name Type
extends string|boolean|undefined
settings Object|undefined
passes Object[]
audits string[]
categories Object|undefined
groups Object|undefined
extends: string|boolean|undefined
extends属性控制您的配置是否应该从默认Lighthouse 配置继承。了解更多。
Example
{
extends: 'lighthouse:default',
}
settings: Object|undefined
settings属性控制Lighthouse运行的各个方面,例如CPU/网络调节以及应该运行哪些审计。
Example
{
settings: {
onlyCategories: ['performance'],
onlyAudits: ['works-offline'],
}
}
选项
有关完整列表,请参阅我们的默认配置设置。
Name Type Description
onlyCategories string[] 在最终报告中只包含指定的类别。添加onlyAudits ,减少审核页面的时间。
onlyAudits string[] 在最终报告中只包括指定的审核。添加onlyCategories ,减少审核页面的时间。
skipAudits string[] 从最终报告中排除指定的审核。优先于onlyCategories,不能与onlyAudits一起使用,并减少了审核页面的时间。
passes: Object[]
passes属性控制如何加载请求的URL以及在加载时收集有关页面的哪些信息。passes数组中的每个条目代表一次页面加载(例如,passes中的4个条目将加载页面4次),因此在此处添加多个条目以避免延长运行时间。
每个passes条目定义基本设置,例如等待页面加载的时间以及是否记录跟踪文件。此外,每个过程都定义了要使用的Gatherer列表。Gatherer可以从页面中读取信息以生成工件,这些工件随后被审计人员用来为您提供Lighthouse 报告。有关实现自定义采集器及其在构建Lighthouse 报告中所扮演的角色的更多信息,请参阅食谱。还要注意artifacts.devtoolsLogs每次通过都会自动填充。Gatherer还可以在afterPass中访问此数据traceData.devtoolsLog(然而,大多数人会发现traceData.networkRecords更有用)。
有关默认传递值的列表,请参阅我们的配置常量。
Example
{
passes: [
{
passName: 'fastPass',
gatherers: ['fast-gatherer'],
},
{
passName: 'slowPass',
recordTrace: true,
useThrottling: true,
networkQuietThresholdMs: 5000,
gatherers: ['slow-gatherer'],
}
]
}
选项
Name Type Description
passName string 审核和配置扩展期间使用的过程的唯一标识符。
recordTrace boolean 启用时记录过程的跟踪。采集者可在afterPass 中作为traceData.trace以及artifacts.traces
useThrottling boolean 启用时启用通道限制。
pauseAfterLoadMs number 加载事件之后,传递可以继续之前等待的毫秒数。用于确保页面在结束跟踪之前有时间执行后加载JavaScript。(默认值:0)
networkQuietThresholdMs number 自上次网络请求在页面被认为达到“网络安静”之前等待的毫秒数。用于确保页面在结束跟踪之前有时间完成完整的网络请求瀑布。(默认值:5000)
pauseAfterNetworkQuietMs number 在“网络安静”之后,在继续传递之前等待的毫秒数。用于确保页面在结束跟踪之前有时间执行网络后安静的JavaScript。(默认值:0)
blockedUrlPatterns string[] 加载页面时要阻止的请求的URL。基本通配符支持使用*。
gatherers string[] 在此通行证上运行的集合者列表。此属性是必需的,并且在扩展时将与现有的Gatherer集连接。
audits: string[]
审计属性控制要运行的审计,并将其包含在Lighthouse 报告中。查看更多示例以了解如何将自定义审核添加到配置中。
Example
{
audits: [
'first-meaningful-paint',
'first-cpu-idle',
'byte-efficiency/uses-optimized-images',
]
}
categories: Object|undefined
categories属性控制如何在报表中对审核结果进行评分和组织。配置中定义的每个类别在Lighthouse输出的categories属性中都有一个条目。类别输出包含子审核结果以及类别的总分。
注意:使用Lighthouse的许多模块不需要对所有审计结果进行分组或评分;在这些情况下,省略categories部分是可以的。
Example
{
categories: {
performance: {
title: 'Performance',
description: 'This category judges your performance',
auditRefs: [
{id: 'first-meaningful-paint', weight: 2, group: 'metrics'},
{id: 'first-cpu-idle', weight: 3, group: 'metrics'},
{id: 'interactive', weight: 5, group: 'metrics'},
],
}
}
}
选项
Name Type Description
title string 类别的显示名称。描述字符串显示的类别说明。
auditRefs Object[] 要包含在类别中的审核。
auditRefs[$i].id string 要包含的审核ID。
auditRefs[$i].weight number 审核在该类别评分中的权重。
auditRefs[$i].group string (optional) 审核的显示组的ID。
groups: Object|undefined
groups属性控制如何在一个类别中可视化地分组审核。例如,这样可以在报告中分组呈现度量和可访问性审核。
注意:报表呈现器具有硬编码到特定审核组名称的显示逻辑。在没有附加呈现逻辑的情况下添加任意组可能无法按预期执行。
Example
{
categories: {
performance: {
auditRefs: [
{id: 'my-performance-metric', weight: 2, group: 'metrics'},
],
}
},
groups: {
'metrics': {
title: 'Metrics',
description: 'These metrics encapsulate your web app\'s performance across a number of dimensions.'
},
}
}
配置扩展
如果您只需要做一些小的调整,比如添加一个审计或者跳过一个审计,但是仍然希望运行Lighthouse提供的大部分功能,那么可以扩展stock Lighthouse配置。当添加extends: 'lighthouse:default',则会自动包括默认过程、审核、组和类别,从而允许您修改设置或向过程添加其他审核。
请注意,您只能从lighthouse:default,使用extends 属性,进行扩展。lighthouse- core/config目录中的其他内部配置可以通过从file reference导入config对象或使用--preset CLI标志来使用。
请参阅下面的更多示例以查看不同类型的扩展。
配置扩展是运行自定义Lighthouse的推荐方式。如果有一个扩展目前无法解决的用例,我们很乐意听到您的消息!
More Examples
最好的例子就是Lighthouse自己使用的那些!有几个参考配置文件作为Lighthouse的一部分进行维护。