# 技术开发指南 > **注意:** 本文档整合了原有的开发指南和技术文档,提供完整的技术栈说明和开发规范。 ## 1. 项目技术架构 ### 1.1 整体架构 - Monorepo结构 - packages/core - 核心功能包 - packages/web - Web应用 - packages/extension - Chrome扩展 - packages/ui - 共享UI组件 - 包间依赖管理 - 清晰的依赖关系 - 版本一致性 - 最小化重复代码 - 工程化工具 - pnpm workspace - 多包管理 - 统一版本控制 ### 1.2 技术栈概览 #### 1.2.1 核心包 (@prompt-optimizer/core) - TypeScript 5.3.x - 类型系统 - 接口定义 - 模块化 - 原生SDK集成 - OpenAI SDK ^4.83.0 - Google Generative AI SDK ^0.21.0 - 模型管理 - 提示词处理 - 流式响应 - 工具库 - uuid ^11.0.5 - zod ^3.22.4 - 错误处理 - 类型定义 #### 1.2.2 Web包 (@prompt-optimizer/web) - Vue 3.5.x - Composition API - Script Setup - 响应式系统 - 组件生态 - Vite 6.0.x - 快速开发服务器 - 优化的构建 - 插件系统 - HMR支持 #### 1.2.3 UI框架和样式 - TailwindCSS 3.4.x - 实用优先 - 响应式设计 - 深色模式支持 - 动画系统 - Vue Transitions - 页面过渡动画 - 组件切换效果 - 列表动画 - Element Plus 2.9.x - 组件库 - 主题支持 - 响应式组件 #### 1.2.4 状态管理 - Vue Reactivity - ref/reactive - computed - watch - watchEffect - LocalStorage - 配置持久化 - 历史记录存储 - 模板管理 - 加密存储 - Pinia 2.1.x - 状态管理 - 持久化 - 插件支持 #### 1.2.5 安全性 - WebCrypto API - API密钥加密 - 安全存储 - 密钥轮换 - XSS防护 - 输入验证 - 内容过滤 - 安全编码 - CORS配置 - API访问控制 - 安全头部 - CSP策略 #### 1.2.6 开发工具 - TypeScript 5.3.x - 类型检查 - 代码提示 - 接口定义 - ESLint 8.56.x - 代码规范 - 自动修复 - TypeScript支持 - Prettier 3.2.x - 代码格式化 - 统一风格 - 编辑器集成 #### 1.2.7 测试框架 - Vitest 3.0.x - 单元测试 - 集成测试 - 快照测试 - 覆盖率报告 - Vue Test Utils 2.4.x - 组件测试 - 行为模拟 - 事件测试 - Playwright 1.41.x - E2E测试 - 跨浏览器测试 - 视觉回归测试 ### 1.3 代码组织 - 模块化设计 - 按功能划分模块 - 单一职责原则 - 关注点分离 - 统一目录结构 - src/ - 源代码 - tests/ - 测试代码 - types/ - 类型定义 - config/ - 配置文件 ## 2. 核心包开发规范 ### 2.1 服务实现规范 - 接口一致性 - 所有服务必须实现统一接口 - 方法命名保持一致 - 错误处理遵循统一模式 - 返回值类型一致 - 错误处理 - 使用统一的错误类型 - 错误信息应包含上下文 - 实现错误恢复机制 - 提供用户友好的错误信息 ### 2.2 SDK集成规范 - 原生SDK集成 - 直接使用官方SDK - 避免不必要的抽象层 - 保持版本更新 - 遵循官方最佳实践 - 错误映射 - SDK特定错误映射到统一错误类型 - 保留原始错误信息 - 实现重试机制 - 提供降级方案 ### 2.3 类型定义规范 - 类型安全性 - 使用精确的类型定义 - 避免any类型 - 使用联合类型表示可能的值 - 为复杂对象定义接口 - 类型导出 - 在index.ts中集中导出类型 - 按模块组织类型定义 - 使用命名空间避免冲突 - 提供类型文档注释 ### 2.4 测试规范 - 单元测试 - 测试覆盖率目标>80% - 测试边界条件 - 模拟外部依赖 - 验证错误处理 - 集成测试 - 测试服务间交互 - 验证端到端流程 - 测试性能和并发 - 模拟真实环境 ## 3. 前端开发规范 ### 3.1 项目架构 - 推荐目录结构 ``` src/ ├── components/ # UI组件 ├── composables/ # 组合式函数 ├── views/ # 页面组件 ├── services/ # 服务 ├── stores/ # Pinia状态 ├── assets/ # 静态资源 ├── utils/ # 工具函数 ├── types/ # 类型定义 ├── App.vue # 根组件 └── main.ts # 入口文件 ``` - 命名规范 - 组件文件:PascalCase.vue - 工具函数文件:camelCase.ts - 类型定义文件:camelCase.types.ts - 组合式函数:useXxx.ts ### 3.2 服务使用规范 - 核心服务集成 - 使用统一的服务访问模式 - 实现服务单例模式 - 处理服务初始化 - 管理服务状态 - 错误处理 - 使用统一的错误处理机制 - 提供用户友好的错误提示 - 实现错误恢复 - 记录错误日志 ### 3.3 组件开发规范 - Vue组件模板 - 使用