4.0 KiB
4.0 KiB
CLAUDE.md
本文件用于给 AI 编程代理提供本项目的最小必要指导。
目标不是替代 README 或 docs/,而是帮助代理快速理解项目结构、工作方式和关键约束。
项目概览
ERPAuto 是一个基于 Electron 的桌面应用,用于自动化处理 ERP 系统中的数据提取、清理、校验和配置管理。
技术栈:
- Electron 39
- React 19
- TypeScript 5.9
- electron-vite / Vite 7
- Playwright 1.58
- Vitest
常用命令
开发与构建:
npm run dev
npm run build
npm run build:win
质量检查:
npm run typecheck
npm run typecheck:node
npm run typecheck:web
npm run lint
npm run format
测试:
npm run test
npm run test:coverage
npm run test:e2e
发布:
npm run release:publish -- --channel stable
npm run release:publish -- --channel preview
详细发布流程见: docs/build-and-release-guide.md
代码结构
主进程
- 路径:
src/main/ - 入口:
src/main/index.ts - 职责:
- 应用生命周期管理
- 配置加载
- IPC 注册
- 更新服务初始化
预加载层
- 路径:
src/preload/ - 职责:
- 暴露
window.electronAPI - 作为 renderer 和 main 之间的安全桥
- 暴露
渲染进程
- 路径:
src/renderer/ - 技术:React + TypeScript
- 特点:
- 通过 preload 暴露的 API 调用主进程
- 以登录状态和角色控制主要功能入口
服务层
主进程服务集中在 src/main/services/,按领域拆分:
erp/:ERP 浏览器自动化database/:MySQL / SQL Serveruser/:登录、会话、用户切换config/:YAML 配置管理update/:便携版更新excel/:Excel 处理
关键事实
配置系统
- 使用 YAML 配置
- 模板文件:
config.template.yaml - 开发环境通常使用项目根目录下的
config.yaml - 生产环境会将配置放到用户目录
IPC 组织方式
- 所有 IPC handler 在
src/main/ipc/ - 每个领域一个 handler 模块
- 统一在
src/main/ipc/index.ts注册 - channel 命名遵循
domain:action
认证与角色
当前主要角色是:
AdminUserGuest
登录流程支持:
- 静默登录
- 普通登录
- 管理员切换用户
便携版自动更新
项目已实现 Windows 便携版更新,关键点:
- 更新检查基于登录用户角色
- 支持
stable/preview双通道 User只看stableAdmin同时看stable和preview- 使用原生
portable-updater.exe完成替换,不依赖 PowerShell
相关文档:
代理工作约束
- 优先修改现有文件,不要随意新建同类文件。
- 变更前先理解对应模块的现有模式,尽量保持风格一致。
- renderer 不要直接访问 Node/Electron 能力,统一走 preload。
- 配置、IPC、类型定义通常需要同步更新,避免只改一层。
- 涉及发布、更新、构建链路时,优先复用现有脚本,不要重复实现。
- 涉及浏览器部署或更新流程时,先看
docs/里的专题文档。
代理优先查看的文档
- README.md
- docs/build-and-release-guide.md
- docs/portable-auto-update-architecture.md
- docs/browser/PLAYWRIGHT_DEPLOYMENT.md
不放在这里的内容
以下内容不应继续堆在本文件中:
- 详细用户使用说明
- 大段业务流程说明
- 重复的架构长文
- 版本发布记录
这些内容应继续放在 README 或 docs/ 下的专题文档中。