#!/bin/bash # 结伴客后端服务启动脚本 # 设置颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 检查是否已经安装依赖 check_dependencies() { if [ ! -d "node_modules" ]; then echo -e "${YELLOW}检测到未安装依赖,正在安装...${NC}" npm install if [ $? -ne 0 ]; then echo -e "${RED}依赖安装失败!${NC}" exit 1 fi echo -e "${GREEN}依赖安装完成!${NC}" fi } # 检查环境变量文件 check_env() { if [ ! -f ".env" ]; then echo -e "${YELLOW}未找到 .env 文件,正在复制示例文件...${NC}" if [ -f ".env.example" ]; then cp .env.example .env echo -e "${GREEN}.env 文件已创建,请根据需要修改配置!${NC}" else echo -e "${RED}未找到 .env.example 文件!${NC}" fi fi } # 启动服务 start_server() { echo -e "${GREEN}正在启动结伴客后端服务...${NC}" # 检查是否提供了参数 if [ "$1" = "dev" ]; then # 开发模式 if command -v nodemon &> /dev/null; then nodemon src/server.js else echo -e "${YELLOW}未安装 nodemon,使用 node 运行...${NC}" node src/server.js fi else # 生产模式 node src/server.js fi } # 显示帮助信息 show_help() { echo "结伴客后端服务启动脚本" echo "" echo "使用方法:" echo " ./start.sh - 以生产模式启动服务" echo " ./start.sh dev - 以开发模式启动服务" echo " ./start.sh help - 显示帮助信息" echo "" echo "说明:" echo " 生产模式: 使用 node 直接运行服务" echo " 开发模式: 使用 nodemon 运行服务(支持热重载)" } # 主逻辑 main() { echo -e "${GREEN}========== 结伴客后端服务启动脚本 ==========${NC}" # 检查参数 case "$1" in "help"|"-h"|"--help") show_help ;; "dev") check_dependencies check_env start_server "dev" ;; *) check_dependencies check_env start_server ;; esac } # 执行主逻辑 main "$@"