Files
prompt-optimizer/dev.md
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
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 开发指南 (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`