# ============================================================ # OpenHIS 前端依赖问题排查与修复脚本 # 用法: bash fix-deps.sh # ============================================================ set -e PROJECT_DIR=$(cd "$(dirname "$0")/.." && pwd) UI_DIR="$PROJECT_DIR/openhis-ui-vue3" cd "$UI_DIR" echo "==========================================" echo " OpenHIS 前端依赖诊断" echo "==========================================" echo "" # 检查 node_modules 是否存在 if [ ! -d "node_modules" ]; then echo "[!] node_modules 不存在,执行 npm install..." npm install --legacy-peer-deps exit 0 fi # 检查 package-lock.json 是否存在 if [ ! -f "package-lock.json" ]; then echo "[!] package-lock.json 缺失,重新生成..." npm install --legacy-peer-deps fi # 检查关键依赖 echo "检查关键依赖:" DEPS=("vue" "vite" "vxe-table" "element-plus" "pinia" "vue-router" "axios" "dayjs") for dep in "${DEPS[@]}"; do if [ -d "node_modules/$dep" ]; then VER=$(node -p "require('./node_modules/$dep/package.json').version" 2>/dev/null || echo "未知") echo " ✓ $dep@$VER" else echo " ✗ $dep 缺失!" fi done echo "" # 检查过时依赖 echo "检查过时依赖 (可选升级):" npm outdated 2>/dev/null || true echo "" # 常见问题修复菜单 echo "==========================================" echo " 修复选项:" echo " 1) 重新安装依赖 (rm node_modules + npm install)" echo " 2) 清理缓存并重装 (npm cache clean + 重装)" echo " 3) 修复 peer 依赖冲突 (npm install --legacy-peer-deps)" echo " 4) 退出" echo "==========================================" read -p "选择 [1-4]: " choice case $choice in 1) echo "清理 node_modules..." rm -rf node_modules package-lock.json npm install --legacy-peer-deps ;; 2) echo "清理缓存..." npm cache clean --force rm -rf node_modules package-lock.json npm install --legacy-peer-deps ;; 3) npm install --legacy-peer-deps ;; *) echo "退出" ;; esac echo "" echo "完成 ✓"