前端调试利器-PageSpy

特别是在做 H5 开发的时候为了方便调试,一般都会在本地或者测试环境安装 vConsole 插件方便查看日志、错误信息等。

但如果是测试在远程发现了错误还是需要打开 vConsole 截图再转发。如果有这么一个工具,让我们开发远程实时查看用户的操作日志、数据请求和缓存数据,岂不是更省事。

大家看了上面的描述可能会联想到埋点上报,先别急,今天介绍的这个工具和埋点有着本质区别。

今天给大家推荐一个调试利器 PageSpy

PageSpy是什么?

PageSpy 是一款用来调试远程 Web 项目的工具。基于对原生 API 的封装,它将调用原生方法时的参数进行过滤、转化,整理成格式规范的消息供调试端消费;调试端收到消息数据,提供类控制台可交互式的功能界面将数据呈现出来。

主要功能是什么?

  • 实时日志查看 - 可实时输出客户端的 Console 日志
  • 远程控制台 - 支持远程调试客户机上的js代码
  • 网络请求监控 - 可以捕获和显示页面的网络请求
  • 用户端缓存查看 - 可以远程实时查看用户端缓存数据
  • 查看客户端信息 - 自动输出客户端运行环境

使用方式

安装服务端

方式一:使用 Docker 部署(个人推荐)

1
docker run -d --restart=always -p 6752:6752 --name="pageSpy" ghcr.io/huolalatech/page-spy-web:latest

启动完成后浏览器访问 <host>:6752,页面顶部会出现 接入 SDK 菜单,点击菜单查看如何在业务项目中配置并集成。

Untitled

方式二:使用 Node 部署

  1. 全局安装依赖

    1
    2
    3
    4
    5
    
    yarn global add @huolala-tech/page-spy-api@latest
    
    # 如果你使用 npm
    
    npm install -g @huolala-tech/page-spy-api@latest
    
  2. 启动服务

    安装完成之后你可以在命令行中直接执行 page-spy-api 启动服务。部署完成后浏览器访问 <host>:6752,页面顶部会出现 接入 SDK 菜单,点击菜单查看如何在业务项目中配置并集成。

Untitled

按照上面任意一种方式安装好服务端后在浏览器打开 <host>:6752 出现下方的页面就代表部署成功了🎉。

Untitled

接入SDK

点击页面头部 接入 SDK 按钮,查看接入文档并按照文档进行操作

Untitled

创建一个简单的项目并按照文档接入 SDK ,并添加一些测试代码

Untitled

在浏览器打开对应测试页面,当看到页面左小角显示Pagepy的logo说明引入成功了。

Untitled

打开服务端页面 <host>:6752,点击房间列表查看设备列表

Untitled

功能概览

  • 输出面板: 显示 console.<log | info | warn | error> 日志信息,可以执行代码;

    Untitled

  • 网络面板: 显示 fetch | XMLHttpRequest | navigator.sendBeacon 的网络请求;

    Untitled

    Untitled

  • 页面面板: 显示当前页面,查看 HTML 节点树;

    Untitled

  • 存储面板: 查看 localStorage | sessionStorage | cookie | indexedDB 缓存数据;

    Untitled

  • 系统面板: 显示 userAgent 信息,查看 api 兼容性。

    Untitled

    扩展 - 在 Vue 项目中接入 PageSpy

    • 使用 Vite 创建测试项目

      Untitled

    • 在 Vue 项目中引用 PageSpy

      1. 在 index.html 中增加 EJS 标签(对应下图中 1)
      2. 在 vite.config.ts 中配置,该方式可以按需引入需要的功能即可(对应下图中 2、3)

      一般项目中生产环境是不需要调试工具的所以需要在第三步结合 Vite 的环境变量自行判断

      Untitled

    • 执行 npm run dev 运行项目,打开运行后项目链接

      Untitled

    • 在浏览器打开对应页面,当看到页面左小角显示Pagepy的logo说明引入成功了

      Untitled

    • 在服务端页面找到对应的 Vue 项目点击调试就能进行相关的调试操作了

      Untitled

    参考

    PageSpy 文档:https://www.pagespy.org/docs

    PageSpy 源码:https://github.com/HuolalaTech/page-spy-web

    vite-plugin-html 文档: https://github.com/vbenjs/vite-plugin-html/blob/main/README.zh_CN.md

    vite-plugin-html 源码:https://github.com/vbenjs/vite-plugin-html

Licensed under CC BY-NC-SA 4.0