93 lines
2.3 KiB
Bash
93 lines
2.3 KiB
Bash
|
|
#!/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 "$@"
|