LightHouse使用

目录

一、Chrome 开发者工具(DevTools)

1、三种模式

2、设备

3、主要监测指标

二、Node CLI

三、Chrome 扩展

四、测试结果分析

Performance

Accessibility

SEO


LightHouse是一个开源的自动化工具,用于提高网页质量。它可以帮助你分析网页性能、可访问性、SEO 等多方面,给出优化建议。

原文链接:https://blog.youkuaiyun.com/m0_74823842/article/details/144730032 

  • Chrome 开发者工具(DevTools)
  • Node CLI
  • Chrome 扩展
一、Chrome 开发者工具(DevTools)

安装插件

F12 打开DevTools,选择“分析网页加载情况”,进行网页性能分析

1、三种模式

导航模式(默认)

获取性能分数和所有性能指标。
评估渐进式 Web 应用功能。
在页面加载后立即分析可访问性。

无法分析表单提交或单页应用转换。
无法分析在页面加载时无法立即提供的内容。

时间跨度模式

测量某个时间范围内的布局偏移和 JavaScript 执行时间,包括交互。
发现性能机会,以改善长期存在的页面和 SPA 的体验。

不提供总体性能分数。
无法分析基于时刻的性能指标(如:最大内容绘制)。
无法分析页面状态问题(如:没有无障碍功能类别)

快照模式

分析当前状态的页面。
查找 SPA 或复杂表单深处的可访问性问题。
评估隐藏在交互后面的菜单和 UI 元素的最佳实践。

不提供总体性能分数或指标。
无法分析当前 DOM 之外的任何问题(如:没有网络、主线程或性能分析)。

2、设备

分为2种:移动设备和桌面设备

3、主要监测指标

性能指标(Performance)

性能检测(重点)。对页面的性能评分,如:网页的加载速度、响时间等。
指标包括:首次内容绘制(First Contentful Paint)、首次有效绘制(First Meaningful Paint)、首次 CPU 空闲(First CPU Idle)、可交互时间(Time to Interactive)、速度指标(Speed Index)、输入延迟估值(Estimated Input Latency)。

可访问性(Accessibility)

铺助检测。监测页面的可访问性与优化建议,如:网页的可访问性问题,HTML代码标签之类的优化等

最佳实践(Best Practice)

实践性检测。如:网页安全性,如是否开启HTTPS、网页存在的漏洞等

搜索引擎优化(SEO: Search Engine Optimisation)

搜索引擎优化检测。如:网页title是否符合搜索引擎的优化标准等

PWA(Progressive Web App)

验证 PWA 的各个方面的性能情况。

测试流程:

  • 选择配置后,点击 生成报告(Generate report)。Lighthouse 将开始分析网页,并生成一个报告。

  • 分析报告将展示评分(从 0 到 100),并提供具体的优化建议。

测试结果:

二、Node CLI

安装 Lighthouse

npm install -g lighthouse

运行 Lighthouse

lighthouse https://example.com --output html --output-path ./report.html
  • --output json:输出 JSON 格式。

  • --view:运行完毕后自动在浏览器中打开报告。

三、Chrome 扩展

四、测试结果分析

Lighthouse 报告将包括多个部分:

  • 性能:评估网页加载速度和用户体验,包括 LCP(最大内容绘制)、FCP(首次内容绘制)等指标。

  • 可访问性:检查网页是否符合 WCAG 可访问性标准。

  • 最佳实践:如页面是否使用 HTTPS、是否存在不安全的资源等。

  • SEO:检查网页是否符合搜索引擎优化标准。

  • PWA(渐进式 Web 应用):评估网页是否符合 PWA 标准。

Performance

指标介绍

FCP(First Contentful Paint)即首次内容绘制。它统计的是从进入页面到首次有 DOM 内容绘制所用的时间。这里的 DOM 内容指的是文本、图片、非空的 canvas 或者 SVG。

LCP(Largest Contentful Paint)即最大内容绘制。它统计的是从页面开始加载到视窗内最大内容绘制的所需时间,这里的内容指文本、图片、视频、非空的 canvas 或者 SVG 等。

SI(Speed Index)即速度指数。Lighthouse 会在页面加载过程中捕获视频,并通过 speedline 计算视频中帧与帧之间视觉变化的进度,这个指标反映了网页内容填充的速度。页面解析渲染过程中,资源的加载和主线程执行的任务会影响到速度指数的结果。 ​

Minify JavaScript  

缩减 JavaScript 文件大小

Serve images in next-gen formats

修改图像格式

1、下载安装webp转换工具cwebp

地址:Index of downloads.webmproject.org/releases/webp

2、解压后将其中的bin目录路径添加至path

设置成功后查看版本:

3、其他格式图片转换为webp格式

 cwebp [options] -q quality input.png -o output.webp

对比图片大小:

Accessibility

<html> element does not have a [lang] attribute

Add a lang attribute to the html element (e.g. <html lang="en">) whose value represents the primary language of document.

SEO

Document does not have a meta description

添加描述:<meta name=description content="">

修改之后,评估结果会提高:

    Lighthouse 可通过多种方式使用,不同方式有不同使用步骤: ### Chrome 浏览器插件 以 Chrome 插件形式使用 Lighthouse 时,其提供了更加友好的用户界面,方便读取报告。安装插件后,在 Chrome 浏览器中打开目标网页,点击插件图标即可开始测试,测试完成后会在浏览器中显示详细报告[^1]。 ### Chrome DevTools 该工具集成在最新版本的 Chrome 浏览器中,无需安装即可使用打开 Chrome 浏览器,访问目标网页,右键点击页面,选择“检查”打开开发者工具,切换到“Lighthouse”面板,配置测试选项后点击“Generate report”按钮,即可生成性能报告[^1]。 ### Lighthouse CLI 命令行工具 方便将 Lighthouse 集成到持续集成系统中。需要先安装 Node 14 LTS(14.x)或更高版本,然后使用以下命令进行全局安装: ```bash npm install -g lighthouse ``` 安装完成后,可使用以下命令查看帮助信息: ```bash lighthouse --help ``` 使用示例,对百度进行测试并生成 HTML 报告: ```bash lighthouse https://www.baidu.com --output html --output-path ./report.html ``` 上述命令会在当前目录下生成一个名为 `report.html` 的文件,该文件详细展示了网页在各个维度的得分和性能指标[^1][^2]。 ### 编程的方式 能通过 Node.js 模块引入 Lighthouse 工具包,以编程的形式来使用它。以下是一个简单示例: ```javascript const lighthouse = require('lighthouse'); const chromeLauncher = require('chrome-launcher'); async function runLighthouse() { const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']}); const options = {logLevel: 'info', output: 'html', onlyCategories: ['performance'], port: chrome.port}; const runnerResult = await lighthouse('https://example.com', options); // `.report` is the HTML report as a string const reportHtml = runnerResult.report; console.log(reportHtml); // `.lhr` is the Lighthouse Result as a JS object console.log('Report is done for', runnerResult.lhr.finalUrl); console.log('Performance score was', runnerResult.lhr.categories.performance.score * 100); await chrome.kill(); } runLighthouse(); ``` 上述代码通过编程方式调用 Lighthouse 对 `https://example.com` 进行性能测试,并输出 HTML 报告和性能得分[^1]。 ### 自定义审计规则 Lighthouse 最强大的地方在于可以自己写审计规则。以下是一个检查是否使用了过大的 GIF 图的自定义审计示例: ```javascript const { Audit } = require('lighthouse'); class NoLargeGifsAudit extends Audit { static get meta() { return { id: 'no-large-gifs', title: '避免使用大尺寸 GIF', failureTitle: '发现了大尺寸 GIF 图片', description: 'GIF 图片通常体积较大,建议使用视频或 WebP 格式替代', requiredArtifacts: ['ImageElements'] }; } static audit(artifacts) { const gifElements = artifacts.ImageElements .filter(img => img.src.endsWith('.gif') && img.naturalWidth > 500); return { score: Number(gifElements.length === 0), details: { items: gifElements.map(img => ({ src: img.src, size: `${img.naturalWidth}×${img.naturalHeight}` })) } }; } } ``` 将自定义审计规则集成到 Lighthouse 中,可实现更个性化的性能检测需求[^4]。
    评论
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
    红包 添加红包
    表情包 插入表情
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值