Unlighthouse:使用 Google Lighthouse 扫描全站
Unlighthouse: 扫描您整个网站的 Google Lighthouse
Unlighthouse 是一个开源、基于 Node 的命令行界面,可对网站的每一页执行 Google Lighthouse 审计。它提供智能采样系统、最小化配置模型以及清晰的 UI,将原始 Lighthouse 数据转化为可操作的洞察。
什么是 Google Lighthouse?
Google Lighthouse 是一款流行的审核工具,能够测量网页性能、可访问性、最佳实践、SEO,以及渐进式 Web 应用的适配度。然而,官方 Lighthouse CLI 只针对单个 URL 进行审核,无法一次性处理整站。对于大型应用——尤其是拥有数十甚至数百页的网站——手动对每一页执行 Lighthouse 效率低下。
为什么选择 Unlighthouse?
Unlighthouse 通过自动化在整个域名范围内执行 Lighthouse,从而解决了这个难题:
- 智能采样 – 默认情况下,Unlighthouse 根据可配置的策略抓取部分 URL,显著降低运行时间,同时保持审核覆盖率。
- 零配置核心 – 仅需指定
--site <url>,工具即可负责抓取、运行 Lighthouse 并生成报告。 - 现代 UI – 结果通过轻量级的 Web 界面展示,开发者即可实时得到可视化反馈。
- Node 与 Docker 双重支持 – 在任何安装了 Node >= 20 或使用 Docker 的机器上即可运行,便于 CI 集成。
- MIT 许可 – 不存在许可证限制,可在商业项目中自由使用。
快速开始
# 通过 npm 安装
npx unlighthouse --site https://your‑domain.com
# 或使用 PNPM
pnpm dlx unlighthouse --site https://your‑domain.com
./output/your‑domain.com——你可以打开 index.html 来查看仪表盘。
配置选项
Unlighthouse 支持多种标志和一个 unlighthouse.config.ts 文件,以实现更高级的设置。
| Flag | 描述 | 示例 |
|---|---|---|
--debug |
启用详细调试日志 | --debug |
--depth <n> |
最大抓取深度(默认5) | --depth 3 |
--output-dir <dir> |
自定义报告目录 | --output-dir ./reports |
--config <path> |
指定自定义配置文件路径 | --config ./my-config.ts |
示例配置
// unlighthouse.config.ts
import { defineUnlighthouseConfig } from "unlighthouse"
export default defineUnlighthouseConfig({
site: "https://example.com",
// 只审核与这些模式匹配的页面
include: ["/blog/*", "/products/*"],
// 排除管理页面
exclude: ["/admin/**"],
// 使用 2 个并发工人
workers: 2,
// 启用你关注的 Lighthouse 目录
lighthouse: {
categories: ["performance", "accessibility", "seo"],
},
})
在 CI 中运行
Unlighthouse 对 CI 友好。你可以将报告文件夹存储在版本控制中,或直接发布到静态托管服务。以下是一个 GitHub Actions 工作流示例:
name: Site Audit
on: [push]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Run Audit
run: |
npx unlighthouse --site https://your‑site.com --output-dir ./audit
- name: Upload Report
uses: actions/upload-artifact@v3
with:
name: lighthouse-report
path: ./audit
高级功能
1. 基于样本的审核
Unlighthouse 通过仅爬取部分页面来降低审核时间。你可以使用 --sample-rate (0‑1) 调整,或在配置文件中创建自定义采样策略。
2. Lighthouse 配置微调
你可以传入自定义的 lighthouse.json 配置,或通过 config 中的 lighthouse 属性修改默认设置。常见的微调包括禁用第三方审核或自定义分数阈值。
3. API 集成
对于需要身份验证的动态站点,Unlighthouse 支持 Chrome 启动参数,例如 --cookies-file 或 --user-data-dir。你也可以在 Node 脚本中嵌入 Unlighthouse,并以编程方式触发审核。
4. 多协议支持
虽然主要基于 HTTP,Unlighthouse 也能指向本地开发服务器(http://localhost:3000)或远程预发布环境。默认情况下会遵守 robots.txt,但如有需要可通过 --ignore-robots 进行覆盖。
实际使用案例
| 项目 | Unlighthouse 如何帮助 |
|---|---|
| 电商平台 | 在 30 分钟内审核了 400+ 页产品页面,发现一个慢速图像加载循环导致页面速度评分下降 20 分。 |
| 内容聚集博客 | 扫描 2,000+ 条帖子,发现旧内容存在失效外部链接,导致 SEO 处罚。 |
| 内部 SaaS | 仅启用 performance 与 seo 类别,降低了 50+ 内部页面的审核时间,节省数小时开发时间。 |
贡献指南
问题
问题 – 在 GitHub issue 跟踪器提交错误或功能请求。
拉取请求
拉取请求 – 按照 CONTRIBUTING.md 中的贡献指南操作。我们采用语义化版本和 CI 自动 lint。
赞助
赞助 – 项目支持 GitHub Sponsors。捐款有助于维护发布和文档。
最后思考
Unlighthouse 将 Lighthouse 的全部功能带到完整站点,同时消除了手动设置的痛点。无论你是前端工程师、DevOps 工程师,还是想提升性能与 SEO 的站点所有者,Unlighthouse 都能填补关键空缺。它轻量、迅速且完全开源,是现代 Web 工作流的理想补充。
立即开始 – 运行 npx unlighthouse --site https://your‑site.com,让你的审核数据转化为真实改进。