启动服务后,访问以下地址查看完整的 API 文档:
http://localhost:10001/api-docs
- 接口:
GET /api/build/start-dev - 参数:
projectId(必填),basePath(可选) - 说明: 启动指定项目的开发服务器
- 接口:
GET /api/build/build - 参数:
projectId(必填),basePath(可选) - 说明: 构建指定项目
- 接口:
GET /api/build/stop-dev - 参数:
projectId(必填),pid(必填) - 说明: 停止指定项目的开发服务器
- 接口:
GET /api/build/restart-dev - 参数:
projectId(必填),pid(可选),basePath(可选) - 说明: 重启指定项目的开发服务器
- 接口:
GET /api/build/list-dev - 说明: 获取所有运行中的开发服务器列表
- 接口:
POST /api/build/parse-build-error - 参数:
projectId,errorMessage - 说明: 解析构建错误信息,返回用户友好的错误提示
- 接口:
GET /api/build/get-dev-log - 参数:
projectId(必填),startIndex(可选,默认为1) - 说明: 获取指定项目的开发服务器日志
- 返回:
logs: 日志数组(包含行号和内容)totalLines: 总行数startIndex: 起始行号cacheHit: 是否命中缓存fileTooLarge: 文件是否过大(超大文件不缓存)
- 接口:
GET /api/build/get-log-cache-stats - 说明: 获取日志缓存的统计信息
- 返回:
enabled: 是否启用缓存cacheSize: 当前缓存的项目数量maxCacheEntries: 最大缓存项目数量cacheDuration: 缓存过期时间(毫秒)maxFileSizeMB: 当前缓存中最大的文件大小(MB)totalCacheSizeMB: 当前总缓存大小(MB)
- 接口:
POST /api/build/clear-all-log-cache - 说明: 清除所有日志缓存(用于调试或手动释放内存)
- 返回: 成功消息
- 接口:
POST /api/project/create-project - 参数:
projectId - 说明: 创建新项目目录
- 接口:
POST /api/project/upload-start-dev - 类型: multipart/form-data
- 参数:
projectId,codeVersion,file(zip 文件) - 说明: 上传项目压缩包并启动开发服务器
- 接口:
GET /api/project/get-project-content - 参数:
projectId - 说明: 获取项目的文件列表和内容
- 接口:
POST /api/project/backup-current-version - 参数:
projectId,codeVersion - 说明: 备份当前项目版本为 zip 文件
- 接口:
POST /api/project/export-project - 参数:
projectId,codeVersion - 说明: 导出项目为 zip 文件下载
- 接口:
GET /api/project/get-project-content-by-version - 参数:
projectId,codeVersion - 说明: 获取指定版本的项目内容
- 接口:
POST /api/project/submit-files-update - 类型: application/json
- 参数:
projectId,codeVersion,files(数组) - 说明: 批量提交文件更新,自动判断是否需要重启开发服务器
- 接口:
POST /api/project/upload-single-file - 类型: multipart/form-data
- 参数:
projectId,codeVersion,file,filePath - 说明: 上传单个文件(支持二进制文件)
所有接口在出错时返回统一的错误格式:
{
"success": false,
"error": {
"type": "VALIDATION_ERROR",
"message": "项目ID不能为空",
"timestamp": "2025-10-16T10:00:00.000Z",
"requestId": "abc123",
"details": {
"field": "projectId"
}
}
}成功时返回格式:
{
"success": true,
"message": "操作成功",
"data": {}
}主要配置项(详见 env.development):
PORT: 服务端口 (默认: 10001)PROJECT_SOURCE_DIR: 项目源文件目录UPLOAD_PROJECT_DIR: 上传文件目录DIST_TARGET_DIR: 构建产物目录MAX_BUILD_CONCURRENCY: 最大并发构建数 (默认: 20)DEV_SERVER_PORT_TIMEOUT: 端口解析超时 (默认: 15000ms)DEV_SERVER_STOP_MAX_ATTEMPTS: 停止进程最大重试次数 (默认: 50)
- 项目压缩包: 最大 100MB
- 单个文件: 最大 10MB
- 请求体: 最大 100MB
- 项目包: .zip
- 单文件: 所有文本和二进制文件
# 开发环境
npm run dev
# 测试环境
npm run test
# 生产环境
npm run prod日志文件位置:{LOG_BASE_DIR}/{projectId}/
api-{date}.log: API 请求日志build-{date}.log: 构建日志dev-{date}.log: 开发服务器日志
- 并发限制: 同一项目不能同时启动多个开发服务器
- 构建限制: 全局最大并发构建数由
MAX_BUILD_CONCURRENCY控制 - 文件编码: 文件内容建议使用 UTF-8 编码
- 路径安全: 所有文件路径都会进行安全检查,防止路径遍历攻击
- 自动重启: 修改配置文件、package.json 等会自动触发开发服务器重启
- 框架: Express 5.x
- 进程管理: 自定义进程管理器
- 文件上传: Multer
- 压缩: Archiver, Yauzl
- 日志: 自定义日志工具
- 文档: Swagger/OpenAPI 3.0
详细的交互式 API 文档请访问: http://localhost:10001/api-docs