#!/bin/bash # =============================================== # Task Track - 开发模式启动脚本 (使用 Air 热加载) # =============================================== echo "[INFO] 启动 Task Track 开发环境..." echo # 检查是否安装了 Air if ! command -v air &> /dev/null; then echo "[ERROR] Air 未安装,请先安装 Air:" echo "go install github.com/air-verse/air@latest" echo exit 1 fi # 创建 tmp 目录 if [ ! -d "backend/tmp" ]; then mkdir -p "backend/tmp" echo "[INFO] 创建 tmp 目录" fi # 检查并清理已有的后端进程 echo "[INFO] 检查并清理已有的后端进程..." if pgrep -f "task-track-backend" > /dev/null; then echo "[INFO] 发现已运行的后端进程,正在终止..." pkill -f "task-track-backend" sleep 2 fi # 检查端口占用情况 echo "[INFO] 检查端口占用情况..." if lsof -i :8080 > /dev/null 2>&1; then echo "[WARNING] 端口 8080 被占用,正在终止占用进程..." lsof -ti :8080 | xargs kill -9 2>/dev/null sleep 2 fi # 启动前端开发服务器 (如果需要) echo "[INFO] 检查前端开发服务器..." if ! pgrep -f "npm.*dev" > /dev/null; then echo "[INFO] 启动前端开发服务器..." cd frontend npm run dev > /dev/null 2>&1 & cd .. echo "[INFO] 等待前端服务器启动..." sleep 5 fi # 启动后端 (使用 Air 热加载) echo "[INFO] 启动后端热加载开发服务器..." echo "[INFO] 使用 Air 进行热加载,代码变更将自动重启服务器" echo "[INFO] 按 Ctrl+C 停止开发服务器" echo cd backend air echo echo "[INFO] 后端开发服务器已停止" cd ..