Files
prompt-optimizer/dev.md
T
linshen bf9d98eb69 ✨ 新增 Vercel 跨域代理支持和环境检测功能
- 在核心服务中添加 Vercel 环境检测和代理工具函数
- 更新 LLM 服务,支持通过 Vercel 代理解决跨域问题
- 扩展模型配置类型,新增 `useVercelProxy` 选项
- 在 ModelManager 组件中添加 Vercel 代理可用性检测和配置
- 更新技术开发指南,详细说明跨域代理解决方案
- 调整 Vercel 配置,支持 API 代理和环境变量设置
2025-03-03 00:25:02 +08:00

190 lines
3.7 KiB
Markdown

# 开发指南 (Development Guide)
## 目录
- [本地开发环境配置](#本地开发环境配置)
- [Docker开发和部署](#docker开发和部署)
- [环境变量配置](#环境变量配置)
- [开发工作流程](#开发工作流程)
- [项目构建和部署](#项目构建和部署)
- [常见问题解决](#常见问题解决)
## 本地开发环境配置
### 基础环境要求
- Node.js >= 18
- pnpm >= 8
- Git >= 2.0
- VSCode (推荐)
### 开发环境设置
```bash
# 1. 克隆项目
git clone https://github.com/linshenkx/prompt-optimizer.git
cd prompt-optimizer
# 2. 安装依赖
pnpm install
# 3. 启动开发服务
pnpm dev # 主开发命令:构建core/ui并运行web应用
pnpm dev:web # 仅运行web应用
pnpm dev:fresh # 完整重置并重新启动开发环境
```
## Docker开发和部署
### 环境要求
- Docker >= 20.10.0
### Docker构建和运行
#### 基础构建
```bash
# 获取package.json中的版本号
$VERSION=$(node -p "require('./package.json').version")
# 构建镜像(使用动态版本号)
docker build -t linshen/prompt-optimizer:$VERSION .
# 添加latest标签
docker tag linshen/prompt-optimizer:$VERSION linshen/prompt-optimizer:latest
# 运行容器
docker run -d -p 80:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer:$VERSION
# 推送
docker push linshen/prompt-optimizer:$VERSION
docker push linshen/prompt-optimizer:latest
```
### 多阶段构建说明
Dockerfile使用了多阶段构建优化镜像大小:
1. `base`: 基础Node.js环境,安装pnpm
2. `builder`: 构建阶段,安装依赖并构建项目
3. `production`: 最终镜像,只包含构建产物和nginx
## 环境变量配置
### 本地开发环境变量
在项目根目录创建 `.env.local` 文件:
```env
# OpenAI API配置
VITE_OPENAI_API_KEY=your_openai_api_key
# Gemini API配置
VITE_GEMINI_API_KEY=your_gemini_api_key
# DeepSeek API配置
VITE_DEEPSEEK_API_KEY=your_deepseek_api_key
# 自定义API配置
VITE_CUSTOM_API_KEY=your_custom_api_key
VITE_CUSTOM_API_BASE_URL=your_custom_api_base_url
VITE_CUSTOM_API_MODEL=your_custom_model_name
```
### Docker环境变量
通过 `-e` 参数设置容器环境变量:
```bash
docker run -d -p 80:80 \
-e VITE_OPENAI_API_KEY=your_key \
-e VITE_CUSTOM_API_BASE_URL=your_api_url \
prompt-optimizer
```
## 开发工作流程
### 代码提交规范
```bash
# 提交格式
<type>(<scope>): <subject>
# 示例
feat(ui): 添加新的提示词编辑器组件
fix(core): 修复API调用超时问题
```
### 测试流程
```bash
# 运行所有测试
pnpm test
# 运行特定包的测试
pnpm test:core
pnpm test:ui
pnpm test:web
```
## 项目构建和部署
### 本地构建
```bash
# 构建所有包
pnpm build
# 构建特定包
pnpm build:core
pnpm build:ui
pnpm build:web
pnpm build:ext
```
### 常用Docker命令
```bash
# 查看容器日志
docker logs -f prompt-optimizer
# 进入容器
docker exec -it prompt-optimizer sh
# 容器管理
docker stop prompt-optimizer
docker start prompt-optimizer
docker restart prompt-optimizer
# 清理资源
docker rm prompt-optimizer
docker rmi prompt-optimizer
```
## 常见问题解决
### 依赖安装问题
```bash
# 清理依赖缓存
pnpm clean
# 重新安装依赖
pnpm install --force
```
### 开发环境问题
```bash
# 完全重置开发环境
pnpm dev:fresh
# 清理构建缓存
pnpm clean
rm -rf node_modules
pnpm install
```
### 构建失败处理
1. 检查Node.js版本是否符合要求
2. 清理构建缓存:`pnpm clean`
3. 重新安装依赖:`pnpm install`
4. 查看详细构建日志:`pnpm build --debug`
### 容器运行问题
1. 检查端口占用:`netstat -ano | findstr :80`
2. 检查容器日志:`docker logs prompt-optimizer`
3. 检查容器状态:`docker ps -a`