| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #!/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
|