81 lines
2.0 KiB
Bash
81 lines
2.0 KiB
Bash
# ============================================================
|
|
# 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 "完成 ✓" |