4k star 远程调试神器 page-spy-web

本文首发于公众号 极客枫哥 ,日更分享各种好玩的软件、编程知识和个人成长故事

我们在开发移动端应用时,经常会碰到以下几个问题

  1. 调试不方便,只能本地调试或者连接 pc adb 模式调试
  2. 测试和开发异地办公时,对于一些特定场景的 bug,开发无法复现,不好排查原因
  3. vConsole 能在一定程度上解决问题,但是只能靠日志或者测试同学截图,沟通成本很高,而且有些问题排查起来还是很困难

介绍

page-spy-web是一个多功能的远程调试工具,如果说 vConsole是 1.0 时代的话,那么它的出现,把移动端调试带入了 2.0 时代。

项目地址:github.com/HuolalaTech...

本地部署

全局安装 page-spy-api命令,根据你使用的包管理器自行选择响应的命令执行

perl 复制代码
# 使用 yarn
yarn global add @huolala-tech/page-spy-api@latest

# 使用 npm
npm install -g @huolala-tech/page-spy-api@latest

# 另外也支持 docker 部署
docker run -d --restart=always -p 6752:6752 --name="pageSpy" ghcr.io/huolalatech/page-spy-web:latest

启动服务

page-spy-api

启动成功后可以看到服务的 URL,点击打开

项目配置

点击页面顶部的 接入SDK菜单

可以看到有三种不同项目的接入方式,这里我们使用 WEB 项目来接入

在项目的 html 文件中增加如上的代码

xml 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Tauri + React + TS</title>
    <script
      crossorigin="anonymous"
      src="http://172.168.20.29:6752/page-spy/index.min.js"
    ></script>
  </head>

  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.tsx"></script>
    <script>
      window.$pageSpy = new PageSpy();
    </script>
  </body>
</html>

然后启动项目服务,点击 page-spy-api服务顶部的开始调试。因为我最近在学习 tauri 来开发 app,所以就用的是 tauri 的入门 demo 来演示了。

开始调试

项目服务启动后,在 pc web 端和手机端都可以访问一下这个项目地址,这时可以看到房间列表中会多出两个设备信息了

我使用的 web 页面大概长这样,页面中有一个名称的输入框,我在 render 函数中增加了 consoel.log(name),也就是说每次 name 变化后,都会打印日志

找到手机对应的设备,点击调试,在手机上修改 name

查看 page-spy-api调试页面,也看到了相关日志的输出,还是很好用的

不仅仅查看日志,还能查看下面的这些内容

  • 网络请求
  • 页面结构
  • Local Storage,Session Storage,Cookie
  • 系统型号 User-Agent

页面结构长这样

系统页面长这样

总结

page-spy是一个很不错的远程调试项目,可以让开发人员调试移动端的应用更加简单,便利。在跨地区协同办公时,也有非常大的用武之地,不过在这个场景下,就需要部署一个公网的 page-spy-api服务了。

相关推荐
汪子熙23 分钟前
Angular 服务器端应用 ng-state tag 的作用介绍
前端·javascript·angular.js
Envyᥫᩣ31 分钟前
《ASP.NET Web Forms 实现视频点赞功能的完整示例》
前端·asp.net·音视频·视频点赞
Мартин.4 小时前
[Meachines] [Easy] Sea WonderCMS-XSS-RCE+System Monitor 命令注入
前端·xss
昨天;明天。今天。6 小时前
案例-表白墙简单实现
前端·javascript·css
数云界6 小时前
如何在 DAX 中计算多个周期的移动平均线
java·服务器·前端
风清扬_jd6 小时前
Chromium 如何定义一个chrome.settingsPrivate接口给前端调用c++
前端·c++·chrome
安冬的码畜日常6 小时前
【玩转 JS 函数式编程_006】2.2 小试牛刀:用函数式编程(FP)实现事件只触发一次
开发语言·前端·javascript·函数式编程·tdd·fp·jasmine
ChinaDragonDreamer6 小时前
Vite:为什么选 Vite
前端
小御姐@stella6 小时前
Vue 之组件插槽Slot用法(组件间通信一种方式)
前端·javascript·vue.js
GISer_Jing6 小时前
【React】增量传输与渲染
前端·javascript·面试