Lighthouse 配置(翻译)

1,636 阅读5分钟

原文:github.com/GoogleChrom…

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的一部分进行维护。