共计 3879 个字符,预计需要花费 10 分钟才能阅读完成。
作者:Bolaji Ayodeji
翻译:疯狂的技术宅
原文:https://www.freecodecamp.org/…
未经允许严禁转载
Chrome Lighthouse 已经存在了一段时间了,但如果我要求你解释一下它能做什么,你能解释清楚吗?
我发现许多 Web 开发人员包括初学者,都没有听说过这个工具,而那些尚未尝试过的人,一点也不酷 ????。
在本文中,我将向你介绍 Chrome Lighthouse 的作用以及如何使用它。
让我们开始吧 ????
根据维基百科,lighthouse是一座塔楼、建筑物或其他类型的结构,它用灯和镜头系统发出光线,作为海上或内陆水道船舶的导航设备。
好吧,让我们把它变成一个技术术语;
Lighthouse 是一个塔楼,建筑物或其他类型的结构,它在 Chrome 开发者工具的“审核”面板下的系统发出光线,并作为开发人员的指南
有道理吗?????
好吧,Lighthouse 是 Google 开发的一款工具,用于分析网络应用和网页,收集现代性能指标并提供对开发人员最佳实践的意见。
可以将 Lighthouse 看作是汽车中用来检查和平衡汽车速度限制的车速表。
一般情况下 Lighthouse 与开发最佳实践和性能指标一起使用。它在 Web 应用上运行检查,并为你提供有关错误的反馈、低于标准的实践、更好的性能提示以及如何解决这些问题。
根据 Google Developers Docs 上的描述
Lighthouse 是一种开源的自动化工具,用于提高网页质量。你可以在任何网页上运行它。它能够针对性能、可访问性、渐进式 Web 应用等进行审核。
你可以在 Chrome DevTools 中从命令行运行 Lighthouse,也可以作为 Node.js 模块运行。当你向 Lighthouse 提供了一个 URL 来进行审核时,它会针对该页面运行一系列审核,然后生成一个关于该页面执行情况的报告。这份报告可以作为如何改进页面的指标。每次审核都会产生一份参考文档,解释了这些审核为什么重要,以及如何解决等内容。
这几乎都与 Lighthouse 有关,它会审核 Web 应用的 URL 并根据 Web 标准和开发人员最佳实践生成一份报告,告诉你 Web 应用的糟糕程度。报告的每个部分还附有文档,说明你的应用哪些部分已经通过审核,为什么你应该改进应用的某一部分以及如何去解决它。
以下是此博客 https://bolajiayodeji.com 的 lighthouse 审核报告演示
左:我的博客???? 右:Lighthouse 审核报告
很酷吧?????
应该注意的是,在我的第一次审计中,并没有得到这样的好成绩。所以我用第一份报告来修复和改善自己程序的性能和质量。
这是 Lighthouse 目的:它识别和修复影响你网站性能、可访问性和用户体验的常见问题。
现在,让我们进入到有趣的部分,如何开始使用它!!
LightHouse 有三种工作流程
- Chrome 开发者工具
- 命令行 (Node.js)
- Chrome 扩展程序
我个人更喜欢在 Dev Tools 中使用 LightHouse。使用扩展程序没有意义,因为开发工具和扩展程序在同一个 Chrome 浏览器中工作,我们的偏好不同,你可以选择最适合自己的方法。
Lighthouse 在添加到 Chrome DevTools 之前首先只能使用 Chrome 扩展程序。
在命令行上使用 lighthouse 也很酷,(对于极客来说????)
让我们开始吧!!!
[1] 在 Chrome DevTools 中运行 Lighthouse
- 下载谷歌浏览器网页浏览器此处
注意:Lighthouse 只能在桌面上运行
- 转到你要在 Google Chrome 中审核的 URL。
你可以审核网络上的任何 URL。
- 打开 Chrome DevTools
Command+Option+C (Mac)
Control+Shift+C (Windows, Linux, Chrome OS).
- 单击 Audits 面板
左侧是将被审核的页面,这是我的博客????。右侧是 Chrome DevTools 的 Audits 面板,现在由 Lighthouse 提供支持
- 点击 Run audits
DevTools 显示审计类别列表。确保将它们全部被选中。如果你想个性化要审核的哪个部分,可以通过选中要审核的类别来设置。
- 60 至 90 秒后 —— 根据你的网速,Lighthouse 会在页面上为你提供报告。
并非只有网速和预安装的扩展可能会影响 lighthouse 审核。为了获得更好的体验,请在 Icognito 模式 下进行审核来避免所有的干扰
[2] 在命令行中运行 lighthouse
- 下载谷歌 Chrome 浏览器
- 下载 Node.js,如果已安装,请跳过此步骤!
- 安装 Lighthouse
npm install -g lighthouse
# or use yarn:
yarn global add lighthouse
用 -g 选项将其安装为全局模块。
- 运行审核
lighthouse <url>
例如:
lighthouse https://bolajiayodeji.com/
Lighthouse 默认生成 HTML 格式的报告文件。你可以通过添加控制选项来控制输出的格式。
报告能够以 HTML 或 JSON 格式显示。
输出样本:
lighthouse
# saves `./<HOST>_<DATE>.report.html`
lighthouse --output json
# json output sent to stdout
lighthouse --output html --output-path ./report.html
# saves `./report.html`
# NOTE: specifying an output path with multiple formats ignores your specified extension for *ALL* formats
lighthouse --output json --output html --output-path ./myfile.json
# saves `./myfile.report.json` and `./myfile.report.html`
lighthouse --output json --output html
# saves `./<HOST>_<DATE>.report.json` and `./<HOST>_<DATE>.report.html`
lighthouse --output-path=~/mydir/foo.out --save-assets
# saves `~/mydir/foo.report.html`
# saves `~/mydir/foo-0.trace.json` and `~/mydir/foo-0.devtoolslog.json`
lighthouse --output-path=./report.json --output json
# saves `./report.json`
通过运行 $ lighthouse --help
来查看为 CLI 选项
[3] 使用 Chrome 扩展程序运行 Lighthouse
正如我之前所说,DevTools 工作流程是最好的,因为它除了与扩展工作流程相同之外,还有额外的好处:无需进行安装。
To use this method you need to install the extension, but If you have your reasons, here is the guide;
要使用此方法,你需要安装扩展程序,如果你有自己的理由的话。这是按照指南:
- 下载谷歌 Chrome 浏览器
- 从 Chrome 网上应用店安装 Lighthouse Chrome 扩展程序。
- 导航到要审核的页面
- 点击 Lighthouse 图标。
它应该在 Chrome 地址栏旁边。如果没有,请打开 Chrome 的主菜单(右上角的三个点),然后在菜单顶部访问它。点击后会展开 Lighthouse 菜单。
- 单击 Generate report。
Lighthouse 会针对打开的页面运行审核,然后打开一个新选项卡,其中包含结果报告。
Bingo! 你做到了~
就这些,Lighthouse 是一个很好的工具,尤其适合初学者。
在审核 Progressive Web 应用时,它是一个非常有用的工具。
当我开始使用 Lighthouse 时,实际上学到了很多优化和性能标准。相信你很快就能够成为能够构建具有出色性能、可访问性和用户体验的 Web 应用专家。:)
Lighthouse 不是魔术,它是由人类创造的。它是开源的,欢迎对其作出你的贡献。可以通过查看 github 上的 issue 跟踪器,找到可以修复的错误,或者创建和改进审核过程。issue 跟踪器也是讨论审计指标,新审计想法或与 Lighthouse 相关的任何内容的好去处。????
本文首发微信公众号:前端先锋
欢迎扫描二维码关注公众号,每天都给你推送新鲜的前端技术文章
欢迎继续阅读本专栏其它高赞文章:
- 深入理解 Shadow DOM v1
- 一步步教你用 WebVR 实现虚拟现实游戏
- 13 个帮你提高开发效率的现代 CSS 框架
- 快速上手 BootstrapVue
- JavaScript 引擎是如何工作的?从调用栈到 Promise 你需要知道的一切
- WebSocket 实战:在 Node 和 React 之间进行实时通信
- 关于 Git 的 20 个面试题
- 深入解析 Node.js 的 console.log
- Node.js 究竟是什么?
- 30 分钟用 Node.js 构建一个 API 服务器
- Javascript 的对象拷贝
- 程序员 30 岁前月薪达不到 30K,该何去何从
- 14 个最好的 JavaScript 数据可视化库
- 8 个给前端的顶级 VS Code 扩展插件
- Node.js 多线程完全指南
- 把 HTML 转成 PDF 的 4 个方案及实现
- 更多文章 …