5.2 KiB
5.2 KiB
LagZero 目录结构
1. 说明
下面的目录树是面向开发的精简版,省略了以下内容:
- 构建产物:
dist/、dist-electron/、release/ - 依赖目录:
node_modules/ - 本地 AI/IDE 辅助目录:
.agent/、.agents/、.codex/、.qoder/、.trae/
2. 目录树
LagZero
├─ docs/
├─ docImages/
├─ electron/
│ ├─ common/
│ │ └─ store.ts
│ ├─ db/
│ │ └─ schema.ts
│ ├─ main/
│ │ ├─ bootstrap.ts
│ │ ├─ index.ts
│ │ ├─ logger.ts
│ │ ├─ tray.ts
│ │ └─ window.ts
│ ├─ preload/
│ │ └─ index.ts
│ ├─ services/
│ │ ├─ scanners/
│ │ │ ├─ battlenet.ts
│ │ │ ├─ ea.ts
│ │ │ ├─ epic.ts
│ │ │ ├─ local.ts
│ │ │ ├─ microsoft.ts
│ │ │ ├─ steam.ts
│ │ │ ├─ types.ts
│ │ │ ├─ utils.ts
│ │ │ └─ wegame.ts
│ │ ├─ singbox/
│ │ │ ├─ config.ts
│ │ │ ├─ constants.ts
│ │ │ ├─ index.ts
│ │ │ ├─ installer.ts
│ │ │ └─ utils.ts
│ │ ├─ category.ts
│ │ ├─ database.ts
│ │ ├─ game-scanner.ts
│ │ ├─ game.ts
│ │ ├─ node.ts
│ │ ├─ process.ts
│ │ ├─ proxy-monitor.ts
│ │ ├─ system.ts
│ │ └─ updater.ts
│ └─ utils/
│ ├─ command.ts
│ ├─ id.ts
│ ├─ ping.ts
│ └─ port.ts
├─ public/
│ ├─ logo.ico
│ ├─ logo.png
│ └─ logo.svg
├─ shared/
│ ├─ types/
│ │ ├─ category.ts
│ │ ├─ game.ts
│ │ ├─ index.ts
│ │ ├─ node.ts
│ │ ├─ settings.ts
│ │ └─ singbox.ts
│ └─ utils/
│ ├─ format.ts
│ ├─ index.ts
│ ├─ ipc-safe.ts
│ ├─ node-key.ts
│ ├─ process-name.ts
│ └─ sleep.ts
├─ src/
│ ├─ api/
│ ├─ assets/
│ ├─ autoImport/
│ ├─ components/
│ │ ├─ common/
│ │ ├─ dashboard/
│ │ ├─ library/
│ │ ├─ node/
│ │ ├─ settings/
│ │ └─ singbox/
│ ├─ composables/
│ ├─ constants/
│ ├─ layouts/
│ ├─ locales/
│ ├─ router/
│ ├─ stores/
│ ├─ types/
│ ├─ utils/
│ ├─ views/
│ │ ├─ dashboard/
│ │ ├─ library/
│ │ ├─ nodes/
│ │ ├─ settings/
│ │ └─ tray/
│ ├─ App.vue
│ ├─ i18n.ts
│ └─ main.ts
├─ tests/
│ └─ unit/
├─ package.json
├─ README.md
├─ uno.config.ts
├─ vite.config.ts
└─ vitest.config.ts
3. 关键目录职责
electron/
Electron 主进程代码。这里负责:
- 应用启动与窗口生命周期
- 托盘窗口与主窗口通信
- IPC 注册
- 数据库存取
- 游戏扫描
- 系统命令、系统代理、TUN 与 DNS 控制
- sing-box 的安装、启动、停止、重启与日志转发
shared/
跨进程共享层。这里应该只放“纯 TypeScript”代码:
- 公共类型
- 字符串/对象/数组等纯工具函数
- 进程名规范化、节点 key 计算、IPC 安全快照转换
如果一个文件需要同时在 src/ 和 electron/ 使用,优先考虑放到这里。
src/
Vue 渲染进程代码。这里负责:
- 页面和组件
- Pinia 状态管理
- 路由组织
- i18n、多主题、样式
- sing-box 配置生成
- 通过
src/api/调用 preload 暴露的主进程能力
tests/unit/
Vitest 单元测试目录,当前重点覆盖:
- 配置生成
- 扫描工具
- 协议解析
- 代理监控
- UI 主题和局部业务逻辑
4. 重点文件速查
| 文件 | 作用 |
|---|---|
electron/main/index.ts |
主进程总入口,服务实例化和 IPC 汇总注册 |
electron/preload/index.ts |
ContextBridge 暴露层,定义 window.* API |
src/main.ts |
渲染进程入口,挂载 router/pinia/i18n,并处理主窗口初始化逻辑 |
src/router/index.ts |
主窗口与托盘窗口路由定义 |
src/stores/games.ts |
游戏加速主流程入口 |
src/stores/nodes.ts |
节点管理、测速、订阅刷新与导入导出 |
src/stores/local-proxy.ts |
本地代理自动选点、健康检查与自动恢复 |
src/stores/settings.ts |
绝大多数设置项的持久化来源 |
src/utils/singbox-config.ts |
sing-box 配置生成核心 |
electron/services/database.ts |
SQLite 与业务数据落库核心 |
5. 推荐阅读顺序
想看应用怎么启动
electron/main/index.tselectron/main/window.tselectron/preload/index.tssrc/main.ts
想看加速链路怎么跑通
src/views/dashboard/index.vuesrc/stores/games.tssrc/utils/singbox-config.tselectron/services/singbox/index.tselectron/services/proxy-monitor.ts
想看节点与订阅
src/views/nodes/index.vuesrc/stores/nodes.tselectron/services/node.tselectron/services/database.ts
想看游戏扫描
src/composables/useGameScanner.tselectron/services/game-scanner.tselectron/services/scanners/*.ts