Appearance
开发工作流
本文档引用的文件
目录
简介
本文档旨在为开发者提供从零开始的标准开发工作流指南。文档详细说明了如何通过 package.json
中的脚本(如 npm run codegen
)启动代码生成,如何手动修改生成的代码并保留 Git 历史,以及如何启动前后端服务。同时解释了 postinstall.js
和 permit_scan.js
等工具脚本的作用,为新项目提供清晰的开发指引,确保团队遵循一致的开发实践。
项目结构
项目采用多模块架构,包含 codegen
、pc
、rust
和 uni
四个主要子项目,分别负责代码生成、前端管理界面、后端服务和移动端应用。codegen
模块通过模板生成前端 Vue 组件、后端 Rust 模块及 GraphQL 接口,实现前后端代码的一体化生成。
图示来源
本节来源
核心组件
核心组件包括代码生成器、权限扫描器、前后端服务入口及自动化构建脚本。代码生成器基于数据库表结构自动生成前后端代码;权限扫描器自动识别前端组件中的权限标识并同步到数据库;前后端服务分别通过 Vite 和 Cargo 启动。
本节来源
架构概述
系统采用前后端分离架构,前端使用 Vue 3 + Element Plus,后端使用 Rust + Poem + GraphQL。代码生成模块基于 TypeScript 实现,通过模板引擎生成 Vue 组件和 Rust 模块。权限系统通过 permit('code')
标记在前端组件中声明,由 permit_scan.js
扫描并写入数据库。
图示来源
详细组件分析
代码生成流程分析
代码生成流程由 npm run codegen
触发,执行 codegen.ts
脚本。该脚本读取数据库表结构,结合模板生成前端路由、视图组件及后端 DAO、Model、Resolver 等模块。
图示来源
本节来源
权限扫描机制分析
permit_scan.js
脚本用于扫描前端组件中通过 permit('code')
声明的权限点,并将其同步到数据库的 base_permit
表中。该机制确保前端权限声明与后端权限配置保持一致。
图示来源
本节来源
服务启动流程分析
前端服务通过 Vite 启动,后端服务通过 Cargo 运行。构建脚本 postbuild.js
在构建完成后执行资源复制等操作,postinstall.js
在依赖安装后复制必要的前端库文件。
图示来源
本节来源
依赖分析
项目依赖通过 pnpm 管理,各子项目独立维护 package.json
。codegen
模块依赖 TypeScript、MySQL2 等用于代码生成;pc
前端依赖 Vue、Element Plus、GraphQL 客户端等;rust
后端依赖 Poem、Async-GraphQL、MySQL 异步驱动等。
图示来源
本节来源
性能考虑
- 代码生成过程使用 Git 暂存区保护机制,避免中间状态污染版本控制
- 前端构建时通过
postbuild.js
优化资源引用 - 后端使用
tikv_jemallocator
内存分配器优化性能 - GraphQL 查询通过
Server-Timing
头部提供性能监控支持 - 静态资源通过
ejsexcel-browserify
优化浏览器兼容性
故障排除指南
- 代码生成失败:检查数据库连接配置,确保
codegen/.env
文件正确 - 权限扫描异常:确认
permit('code')
语法正确,且对应菜单已存在 - 前端构建错误:运行
npm run typecheck
检查类型错误 - 后端启动失败:检查
.env
文件中的数据库连接参数 - Git 暂存区冲突:在运行
npm run codegen
前提交或暂存所有更改 - 依赖安装问题:确保使用 pnpm 而非 npm 或 yarn,项目使用
preinstall
钩子强制使用 pnpm
本节来源
结论
本文档提供了完整的开发工作流指南,涵盖了代码生成、权限管理、服务启动等关键环节。通过标准化的脚本和自动化工具,团队可以高效地进行全栈开发,确保代码一致性并减少人为错误。建议新项目严格遵循本文档的流程,以保证开发效率和代码质量。