#!/bin/bash echo "==================================" echo " 项目启动诊断工具" echo "==================================" echo "" # 检查 Node.js echo "1. 检查 Node.js 环境..." if command -v node &> /dev/null; then NODE_VERSION=$(node -v) echo " ✓ Node.js 已安装: $NODE_VERSION" else echo " ✗ Node.js 未安装" echo " 请从 https://nodejs.org/ 下载安装" exit 1 fi # 检查 npm echo "" echo "2. 检查 npm..." if command -v npm &> /dev/null; then NPM_VERSION=$(npm -v) echo " ✓ npm 已安装: v$NPM_VERSION" else echo " ✗ npm 未安装" exit 1 fi # 检查 node_modules echo "" echo "3. 检查依赖安装..." if [ -d "node_modules" ]; then echo " ✓ node_modules 目录存在" # 检查关键依赖 if [ -d "node_modules/@dcloudio" ]; then echo " ✓ uni-app 依赖已安装" else echo " ✗ uni-app 依赖缺失,正在安装..." npm install fi else echo " ✗ node_modules 目录不存在" echo " 正在安装依赖..." npm install fi # 检查关键文件 echo "" echo "4. 检查项目文件..." FILES=( "index.html" "src/main.ts" "src/App.vue" "src/pages.json" "src/manifest.json" "vite.config.ts" "package.json" ) for file in "${FILES[@]}"; do if [ -f "$file" ]; then echo " ✓ $file" else echo " ✗ $file 缺失" fi done # 检查 Mock 数据 echo "" echo "5. 检查 Mock 数据..." if [ -f "src/mock/index.ts" ]; then echo " ✓ Mock 数据文件存在" else echo " ✗ Mock 数据文件缺失" fi # 检查 types echo "" echo "6. 检查类型定义..." if [ -d "src/types" ]; then echo " ✓ types 目录存在" TYPE_FILES=$(ls src/types/*.ts 2>/dev/null | wc -l) echo " ✓ 找到 $TYPE_FILES 个类型定义文件" else echo " ✗ types 目录不存在" fi # 检查端口占用 echo "" echo "7. 检查端口占用..." if command -v lsof &> /dev/null; then PORT_5173=$(lsof -i :5173 2>/dev/null | grep LISTEN) if [ -n "$PORT_5173" ]; then echo " ⚠ 端口 5173 已被占用" echo " $PORT_5173" else echo " ✓ 端口 5173 可用" fi fi echo "" echo "==================================" echo " 诊断完成!" echo "==================================" echo "" echo "现在可以运行项目:" echo "" echo " 微信小程序: npm run dev:mp-weixin" echo " H5 浏览器: npm run dev:h5" echo "" echo "推荐先用 H5 模式快速预览:" echo " npm run dev:h5" echo ""