#!/bin/bash # ===================================================== # 芋道前端开发模式启动脚本 # 使用方法: ./start-frontend.sh # ===================================================== set -e # 颜色定义 GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' # 项目根目录 PROJECT_ROOT="$(cd "$(dirname "$0")" && pwd)" FRONTEND_DIR="$PROJECT_ROOT/yudao-ui/yudao-ui-admin-vue3" echo -e "${BLUE}========================================${NC}" echo -e "${BLUE} 芋道前端 - Vue3 Admin${NC}" echo -e "${BLUE}========================================${NC}" echo "" # 加载nvm(如果存在) load_nvm() { export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" } # 检查并切换Node.js版本 check_node() { echo -e "${YELLOW}检查Node.js环境...${NC}" # 先尝试加载nvm load_nvm if ! command -v node &> /dev/null; then echo -e "${RED}错误: 未找到Node.js${NC}" if command -v nvm &> /dev/null; then echo -e "${YELLOW}尝试使用nvm安装最新版本...${NC}" nvm install node nvm use node else echo -e "${RED}请先安装Node.js 18+ 或 nvm${NC}" exit 1 fi fi NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1) if [ "$NODE_VERSION" -lt 18 ]; then echo -e "${YELLOW}Node.js版本过低 (当前: $(node -v)),尝试切换...${NC}" if command -v nvm &> /dev/null; then nvm use node NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1) if [ "$NODE_VERSION" -lt 18 ]; then echo -e "${YELLOW}安装最新Node.js版本...${NC}" nvm install node nvm use node fi else echo -e "${RED}错误: Node.js版本过低且未安装nvm,无法自动切换${NC}" exit 1 fi fi echo -e "${GREEN}✓ Node.js $(node -v)${NC}" } # 检查pnpm环境 check_pnpm() { echo -e "${YELLOW}检查pnpm环境...${NC}" if ! command -v pnpm &> /dev/null; then echo -e "${YELLOW}pnpm未安装,正在安装...${NC}" npm install -g pnpm fi echo -e "${GREEN}✓ pnpm $(pnpm -v)${NC}" } # 检查依赖是否已安装 check_dependencies() { echo -e "${YELLOW}检查项目依赖...${NC}" if [ ! -d "$FRONTEND_DIR/node_modules" ]; then echo -e "${YELLOW}依赖未安装,正在安装...${NC}" cd "$FRONTEND_DIR" pnpm install echo -e "${GREEN}✓ 依赖安装完成${NC}" else echo -e "${GREEN}✓ 依赖已安装${NC}" fi } # 启动开发服务器 start_dev() { echo "" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN} 前端开发服务器启动中...${NC}" echo -e "${GREEN} 访问地址: http://localhost:80${NC}" echo -e "${GREEN} 后端API: http://localhost:48080${NC}" echo -e "${GREEN} 按 Ctrl+C 停止服务${NC}" echo -e "${GREEN}========================================${NC}" echo "" cd "$FRONTEND_DIR" pnpm dev } # 主流程 check_node check_pnpm check_dependencies start_dev