在现代 Web 应用中,性能优化是非常重要的一个环节。为此,Google 提供了 Lighthouse 工具,用于评估 Web 应用的各项性能指数。但是,手动测试每一个页面显然是非常耗时的。所以,一个自动化的、可扩展的 Lighthouse 工具是非常必要的。
lighthouse-crawler 就是一个这样的工具,它基于 Node.js,可以自动扫描并测试一个 Web 站点中的所有页面,并提供一个详细的报告。
安装
要使用 lighthouse-crawler,需要先安装 Node.js 和 npm。在安装完成后,你可以使用以下命令来安装 lighthouse-crawler:
npm install lighthouse-crawler
使用
lighthouse-crawler 可以通过命令行或 JavaScript API 使用。接下来,我们将介绍如何使用这两种方式进行配置和使用。
命令行
在命令行中运行 lighthouse-crawler 可以通过以下方式进行配置:
lighthouse-crawler <site-url> [options]
其中,<site-url>
表示要测试的站点的根 URL,例如:
lighthouse-crawler https://www.example.com
options
参数是可选的,可以设置一些额外的测试选项,常用的选项如下:
-d, --depth <n>
:设置扫描的最大深度,默认为 1。-o, --output <path>
:设置报告输出目录,默认为当前目录。-i, --include <pattern>
:设置要包括的页面 URL 正则表达式。-e, --exclude <pattern>
:设置要排除的页面 URL 正则表达式。
例如,以下命令将扫描 https://www.example.com
站点的所有页面,最大深度为 2,忽略所有以 /blog
开头的页面,并将报告输出到 ./reports
目录中:
lighthouse-crawler https://www.example.com -d 2 -i '^https://www.example.com' -e '^https://www.example.com/blog' -o ./reports
JavaScript API
lighthouse-crawler 还提供了一组灵活的 JavaScript API,可以通过代码控制测试过程,以及读取报告数据。
首先,我们需要引入 lighthouse-crawler 模块:
const LighthouseCrawler = require('lighthouse-crawler')
然后,我们可以创建一个 LighthouseCrawler 实例,设置配置选项,并执行测试:
-- -------------------- ---- ------- ----- ------- - --- -------------------------------------------- - ------ -- -------- ----------------------------- -------- ----------------------------------- ---------- ------------ ----- ----- -- ---- ------ --------- ---- ---------------- - -- ---- ------ ----- --------------- ----------------- - -- ---------------
在测试完成后,我们可以使用以下代码读取报告数据:
const report = crawler.getReport() console.log(report.summary) console.log(report.results['https://www.example.com/page'])
其中,report.summary
包含了整个测试的汇总数据,report.results
包含了每个页面的具体报告数据。
示例代码
以下是一个完整的示例,使用 JavaScript API 配置 lighthouse-crawler,并输出测试结果:
-- -------------------- ---- ------- ----- ----------------- - ----------------------------- ----- ------- - --- -------------------------------------------- - ------ -- -------- ----------------------------- -------- ----------------------------------- ---------- ------------ ----- ----- ---------------- - --------------- ----------------- - -- ------------------------- --- -- - ----------------- ------ ----- -- ----------------------- --- -- - --------------- ------ ----- -- -------------------- ----- ------- -- - --------------- ------ ------ --------------------------- -- ------------------- ----- ------ -- - ----------------- ------ ----------------------- -- ----------------------- -- - ----- ------ - ------------------- -------------------- --------------------------- --
结论
本文介绍了如何使用 lighthouse-crawler,通过自动化测试,更加容易地进行了性能优化。此外,lighthouse-crawler 还提供了丰富的配置选项和 JavaScript API,可以满足不同需求的应用场景。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562de81e8991b448e059c