Refactor code structure for improved readability and maintainability

This commit is contained in:
雨霖铃
2026-03-19 08:47:15 +08:00
parent 050621d3dc
commit a9021b6397
3 changed files with 123 additions and 2426 deletions
+31 -37
View File
@@ -1,54 +1,44 @@
# Testing Tools Browser Extension
这是一个基于 WXT 框架的浏览器扩展项目,提供了多种实用的测试工具,包括时间戳转换、用户操作录制与回放等功能
这是一个基于 WXT 框架的浏览器扩展项目,提供时间戳转换工具
## 项目概述
Testing Tools 是一个功能丰富的浏览器扩展,旨在帮助开发者和测试人员更高效地进行网页测试工作。项目采用现代化的技术栈,包括 React 19、TypeScript 和 Material UI,并利用 WXT 框架简化浏览器扩展的开发流程。
Testing Tools 是一个轻量级的浏览器扩展,提供实用的时间戳转换功能。项目采用现代化的技术栈,包括 React 19、TypeScript 和 Material UI,并利用 WXT 框架简化浏览器扩展的开发流程。
## 功能特性
### 1. 时间戳转换工具
### 时间戳转换工具
- 实时显示当前时间戳(毫秒/秒可切换)
- 日期与时间戳之间的双向转换
- 支持多种日期格式
- 快速复制转换结果
### 2. 录制与回放功能
- 基于 rrweb 库的用户操作录制
- 完整的会话回放功能
- 支持复杂交互场景的重现
### 3. 测试工具页面
- 提供多种实用的测试功能
- 集成测试库支持
- 支持多个时区(亚洲/上海、美洲/纽约、欧洲/伦敦)
- 一键复制转换结果
- 输入验证和错误提示
## 技术栈
- **框架**: WXT (Web Extension Toolkit)
- **前端**: React 19 + TypeScript
- **UI 库**: Material UI
- **状态管理**: React Hooks
- **数据库**: Dexie.js (IndexedDB 包装器)
- **录制回放**: rrweb
- **路由**: React Router DOM
- **日期处理**: dayjs (含 UTC 和时区插件)
- **通信**: @webext-core/messaging
- **存储**: Chrome Storage API (类型安全封装)
## 项目结构
```
├── components/ # 可复用的 UI 组件
├── entrypoints/ # 浏览器扩展入口点
│ ├── popup/ # 扩展弹窗界面
│ ├── popup/ # 扩展弹窗界面(时间戳转换页面)
│ ├── options/ # 选项页面
│ ├── offscreen/ # 离屏文档
│ ├── background.ts # 后台脚本
│ └── content.ts # 内容脚本
├── assets/ # 静态资源
├── wxt.config.ts # WXT 配置文件
├── package.json # 项目依赖和脚本
── README.md # 项目说明文档
├── utils/ # 工具函数(存储、日期处理、消息通信)
├── types/ # TypeScript 类型定义
├── public/ # 静态资源
── wxt.config.ts # WXT 配置文件
├── package.json # 项目依赖和脚本
└── README.md # 项目说明文档
```
## 开发环境要求
@@ -90,29 +80,33 @@ npm run build:firefox
# Chrome 浏览器
npm run zip
# Firefox 浏览器
# Firefox
npm run zip:firefox
```
### 5. 其他命令
```bash
npm run compile # TypeScript 类型检查
npm run lint # ESLint 代码检查
```
## 权限说明
扩展请求以下权限:
- `storage``unlimitedStorage` - 本地数据存储
- `clipboardWrite` - 剪贴板写入
- `activeTab`, `scripting`, `tabs` - 当前标签页控制
- `offscreen` - 离屏文档处理
- `downloads` - 下载管理
- `<all_urls>` - 访问所有网站内容
- `clipboardWrite` - 剪贴板写入(复制功能)
- `activeTab`, `scripting`, `tabs` - 当前标签页控制和脚本注入
- `debugger` - 调试器权限
- `<all_urls>` - 访问所有网站内容(内容脚本注入)
## 主要依赖
- `react`, `react-dom` - 前端框架
- `@mui/material` - UI 组件库
- `rrweb`, `rrweb-player` - 录制回放功能
- `dexie`, `dexie-react-hooks` - 数据库操作
- `react-router-dom` - 路由管理
- `@testing-library/*` - 测试工具
- `dayjs` - 日期处理
- `@webext-core/messaging` - 扩展消息通信
## 贡献指南