gameSeriveUniapp/diagnose.sh
2026-01-12 16:48:28 +08:00

117 lines
2.5 KiB
Bash

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