diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index 3f86f56..8812bd7 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -6,13 +6,9 @@ #### Mac/Linux 用户 ```bash -# 方法1:克隆到当前目录 -mkdir ai-workflow && cd ai-workflow -git clone http://123.60.55.248:3000/Duguay/agent.git . - -# 方法2:克隆到指定文件夹 -git clone http://123.60.55.248:3000/Duguay/agent.git ai-workflow -cd ai-workflow +# 克隆项目(标准方式) +git clone http://123.60.55.248:3000/Duguay/agent.git +cd agent # 运行快速启动脚本 ./quick-start.sh @@ -20,18 +16,16 @@ cd ai-workflow #### Windows 用户 ```bash -# 方法1:克隆到当前目录 -mkdir ai-workflow && cd ai-workflow -git clone http://123.60.55.248:3000/Duguay/agent.git . - -# 方法2:克隆到指定文件夹 -git clone http://123.60.55.248:3000/Duguay/agent.git ai-workflow -cd ai-workflow +# 克隆项目(标准方式) +git clone http://123.60.55.248:3000/Duguay/agent.git +cd agent # 运行快速启动脚本 quick-start.bat ``` +> 💡 **智能启动功能**:脚本会自动检测项目结构并适配,无需手动调整 + 项目将自动在 `http://127.0.0.1:5175/` 启动 --- @@ -55,15 +49,13 @@ git --version # 确保 Git 已安装 ### 2. 获取代码 ```bash -# 方法1:克隆到当前目录 -mkdir my-project && cd my-project -git clone http://123.60.55.248:3000/Duguay/agent.git . - -# 方法2:克隆到指定目录 -git clone http://123.60.55.248:3000/Duguay/agent.git my-project -cd my-project +# 标准克隆方式 +git clone http://123.60.55.248:3000/Duguay/agent.git +cd agent ``` +> 项目配备智能启动脚本,会自动适配目录结构 + ### 3. 安装依赖 ```bash diff --git a/README.md b/README.md index 5fb8bd3..bdd1061 100644 --- a/README.md +++ b/README.md @@ -17,12 +17,12 @@ ### 克隆仓库 ```bash -git clone http://123.60.55.248:3000/Duguay/agent.git . -# 或者 -git clone http://123.60.55.248:3000/Duguay/agent.git ai-workflow -cd ai-workflow +git clone http://123.60.55.248:3000/Duguay/agent.git +cd agent ``` +> 项目已配置智能启动,无需担心目录结构问题 + ### 安装依赖 ```bash @@ -142,23 +142,12 @@ A: 支持所有现代浏览器,建议使用 Chrome 或 Firefox 的最新版本 - 添加交互式节点导航 - 集成图片预览功能 -## 部署注意事项 +## 技术特性 -### 克隆方式说明 - -由于项目文件直接在仓库根目录,建议使用以下方式克隆: - -```bash -# 推荐:克隆到指定文件夹 -git clone http://123.60.55.248:3000/Duguay/agent.git my-workflow -cd my-workflow - -# 或克隆到当前空目录 -mkdir my-workflow && cd my-workflow -git clone http://123.60.55.248:3000/Duguay/agent.git . -``` - -避免直接使用 `git clone url` 以防止路径混乱。 +- **智能启动**:自动检测项目结构,无论如何克隆都能正常运行 +- **端口管理**:自动检测并处理端口冲突(Mac/Linux) +- **跨平台支持**:提供 Windows 和 Unix 系统的启动脚本 +- **零配置**:开箱即用,无需额外配置 ## 联系方式 diff --git a/package.json b/package.json index 0b1eb19..b70e210 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,10 @@ "description": "AI Agent 设计工作流 - 奶茶快闪店宝可梦主题设计", "main": "index.html", "scripts": { - "dev": "npx http-server . -p 5175 -a 127.0.0.1 -o", - "serve": "npx http-server . -p 5175 -a 127.0.0.1" + "dev": "node start.js --open", + "serve": "node start.js", + "dev:old": "npx http-server . -p 5175 -a 127.0.0.1 -o", + "serve:old": "npx http-server . -p 5175 -a 127.0.0.1" }, "keywords": [ "AI", diff --git a/quick-start.bat b/quick-start.bat index f39cce5..4d7bcb9 100644 --- a/quick-start.bat +++ b/quick-start.bat @@ -45,6 +45,21 @@ echo. echo 正在安装依赖... call npm install +REM 检查是否存在 index.html +if not exist "index.html" ( + echo. + echo 警告:当前目录没有 index.html + + REM 检查是否在 agent 子目录中 + if exist "agent\index.html" ( + echo 检测到项目在 agent 子目录中,正在切换... + cd agent + ) else if exist "..\index.html" ( + echo 检测到项目在上级目录,正在切换... + cd .. + ) +) + echo. echo ====================================== echo 启动服务器... diff --git a/quick-start.sh b/quick-start.sh index 65e6453..c830e75 100755 --- a/quick-start.sh +++ b/quick-start.sh @@ -43,6 +43,21 @@ echo "" echo "正在安装依赖..." npm install +# 检查是否存在 index.html +if [ ! -f "index.html" ]; then + echo "" + echo "⚠️ 警告:当前目录没有 index.html" + + # 检查是否在 agent 子目录中 + if [ -f "agent/index.html" ]; then + echo "检测到项目在 agent 子目录中,正在切换..." + cd agent + elif [ -f "../index.html" ]; then + echo "检测到项目在上级目录,正在切换..." + cd .. + fi +fi + echo "" echo "======================================" echo "🚀 启动服务器..." diff --git a/start.js b/start.js new file mode 100644 index 0000000..e571e4c --- /dev/null +++ b/start.js @@ -0,0 +1,84 @@ +#!/usr/bin/env node + +/** + * 智能启动脚本 - 自动适配项目结构 + */ + +const { spawn } = require('child_process'); +const path = require('path'); +const fs = require('fs'); + +// 检查当前目录是否有index.html +const currentDir = process.cwd(); +const indexPath = path.join(currentDir, 'index.html'); +const publicIndexPath = path.join(currentDir, 'public', 'index.html'); + +let serverRoot = '.'; +let openFile = ''; + +// 智能检测项目根目录 +if (fs.existsSync(indexPath)) { + console.log('✅ 检测到 index.html 在当前目录'); + serverRoot = '.'; + openFile = '/'; +} else if (fs.existsSync(publicIndexPath)) { + console.log('⚠️ index.html 在 public 目录,调整服务器根目录...'); + serverRoot = 'public'; + openFile = '/'; +} else { + console.error('❌ 未找到 index.html 文件'); + console.error('请确保在正确的项目目录中运行此脚本'); + process.exit(1); +} + +// 构建命令参数 +const args = [ + 'http-server', + serverRoot, + '-p', '5175', + '-a', '127.0.0.1' +]; + +// 如果需要自动打开浏览器 +if (process.argv.includes('--open') || process.argv.includes('-o')) { + args.push('-o'); + if (openFile) { + args.push(openFile); + } +} + +console.log(''); +console.log('======================================'); +console.log('🚀 AI Agent 工作流 - 启动服务器'); +console.log('======================================'); +console.log(''); +console.log(`📁 服务器根目录: ${serverRoot === '.' ? '当前目录' : serverRoot}`); +console.log(`🌐 访问地址: http://127.0.0.1:5175${openFile}`); +console.log(''); +console.log('按 Ctrl+C 停止服务器'); +console.log(''); + +// 启动服务器 +const server = spawn('npx', args, { + stdio: 'inherit', + shell: true +}); + +// 处理进程退出 +server.on('error', (err) => { + console.error('❌ 启动失败:', err.message); + process.exit(1); +}); + +server.on('exit', (code) => { + if (code !== 0 && code !== null) { + console.error(`❌ 服务器退出,代码: ${code}`); + } + process.exit(code || 0); +}); + +// 处理 Ctrl+C +process.on('SIGINT', () => { + console.log('\n正在停止服务器...'); + server.kill('SIGINT'); +}); \ No newline at end of file