# 少儿智慧阅读 - 服务启动指南 ## 📋 概述 本项目已配置统一的启动脚本,解决了因工作目录不一致导致的服务启动问题。 ## 🚀 快速启动 ### 方式一:统一启动(推荐) ```bash # 启动所有服务(后端 + 前端) ./start-all.sh ``` 这将: - ✅ 自动切换到正确的目录 - ✅ 检查端口占用(3000 和 5173) - ✅ 自动安装依赖(如果需要) - ✅ 后台启动所有服务 - ✅ 等待服务就绪 - ✅ 显示访问地址和日志位置 ### 方式二:分别启动 ```bash # 启动后端 ./lesingle-edu-reading-platform-backend/start-backend.sh # 启动前端 ./lesingle-edu-reading-platform-frontend/start-frontend.sh ``` ## 🛑 停止服务 ### 统一停止 ```bash ./stop-all.sh ``` ### 手动停止 ```bash # 停止后端 lsof -ti:3000 | xargs kill -9 # 停止前端 lsof -ti:5173 | xargs kill -9 ``` ## 📍 访问地址 启动成功后,可以访问: | 服务 | 地址 | 说明 | |------|------|------| | 前端页面 | http://localhost:5173 | Vue 前端应用 | | 后端 API | http://localhost:3000 | NestJS 后端 API | | API 路由 | http://localhost:3000/api/v1 | API 基础路径 | ## 📊 查看日志 ```bash # 实时查看后端日志 tail -f /tmp/lesingle-edu-reading-platform-backend.log # 实时查看前端日志 tail -f /tmp/lesingle-edu-reading-platform-frontend.log # 查看所有日志 tail -f /tmp/lesingle-edu-reading-platform-*.log ``` ## 🔍 检查服务状态 ```bash # 检查后端是否运行 lsof -ti:3000 # 检查前端是否运行 lsof -ti:5173 # 测试后端 API curl http://localhost:3000/api/v1/courses ``` ## 📂 目录结构 ``` /Users/retirado/ccProgram/ ├── start-all.sh # 统一启动脚本 ⭐ ├── stop-all.sh # 统一停止脚本 ⭐ ├── lesingle-edu-reading-platform-backend/ # 后端目录 │ ├── start-backend.sh # 后端启动脚本 │ ├── package.json │ └── src/ └── lesingle-edu-reading-platform-frontend/ # 前端目录 ├── start-frontend.sh # 前端启动脚本 ├── package.json └── src/ ``` ## ⚠️ 常见问题 ### Q: 端口被占用怎么办? A: 统一启动脚本会自动检测并提示是否停止占用端口的进程。 ### Q: 如何重启服务? A: 先运行 `./stop-all.sh` 停止服务,再运行 `./start-all.sh` 启动。 ### Q: 服务启动失败怎么办? A: 查看日志文件排查问题: ```bash tail -f /tmp/lesingle-edu-reading-platform-backend.log tail -f /tmp/lesingle-edu-reading-platform-frontend.log ``` ### Q: 如何在开发模式下启动? A: 脚本默认就是开发模式(`npm run dev` / `npm run start:dev`)。 ## 🎯 开发建议 1. **首次使用**:运行 `./start-all.sh` 启动所有服务 2. **日常开发**:直接使用 IDE 的自动保存和热重载功能 3. **遇到问题**:查看 `/tmp/reading-platform-*.log` 日志文件 4. **停止开发**:运行 `./stop-all.sh` 停止所有服务 ## 📝 脚本特性 - ✅ 自动目录切换(无需担心工作目录问题) - ✅ 端口占用检测和提示 - ✅ 依赖自动安装 - ✅ 后台运行服务 - ✅ 服务健康检查 - ✅ 日志文件管理 - ✅ 友好的进度提示 --- **创建时间**: 2026-02-10 **版本**: 1.0