feat: 配置Husky pre-commit钩子 - 提交前自动执行前端构建检查

- 创建.husky/pre-commit文件
- 配置提交前自动执行npm run build:dev检查语法
- 添加node_modules存在性校验
- 预留ESLint检查接口(待赵云配置后启用)
- 更新openhis-ui-vue3/package.json添加lint-staged配置

【关羽】构建门禁第一步落地
This commit is contained in:
guanyu
2026-04-24 17:14:49 +08:00
parent 758921b633
commit 986510278b
2 changed files with 61 additions and 9 deletions

View File

@@ -1,9 +1,51 @@
#!/usr/bin/env sh
# 前端构建检查
cd openhis-ui-vue3
# 检查是否安装了lint-staged或eslint
if npm list --depth=0 | grep -q "eslint"; then
npm run lint -- --max-warnings 0
# ============================================================
# Husky Pre-commit Hook - HIS项目
# 配置: 关羽 | 日期: 2026-04-24
# 功能: 提交前自动检查前端构建
# ============================================================
echo "========================================"
echo "🔍 [Pre-commit] HIS项目提交检查"
echo "========================================"
# 检查前端目录是否存在
if [ ! -d "openhis-ui-vue3" ]; then
echo "⚠️ [Pre-commit] 未找到openhis-ui-vue3目录跳过前端检查"
exit 0
fi
# 执行生产构建检查
npm run build:prod -- --mode development 2>/dev/null || exit 1
cd openhis-ui-vue3
# 检查node_modules是否存在
if [ ! -d "node_modules" ]; then
echo "⚠️ [Pre-commit] node_modules未安装请先执行 npm install"
echo " 提示: 首次使用或依赖变更后需要安装依赖"
exit 1
fi
# 执行lint检查ESLint配置由赵云下周完善后启用
if grep -q '"lint"' package.json 2>/dev/null; then
echo "📋 [Pre-commit] 执行Lint检查..."
if npm run lint -- --max-warnings 0 2>&1; then
echo "✅ [Pre-commit] Lint检查通过"
else
echo "❌ [Pre-commit] Lint检查失败请修复代码规范问题"
exit 1
fi
else
echo "⏭️ [Pre-commit] 未配置lint脚本待赵云配置ESLint后启用"
fi
# 执行快速构建检查development模式仅检查语法和类型
echo "🔨 [Pre-commit] 执行构建检查 (build:dev)..."
if timeout 120 npm run build:dev 2>&1; then
echo "✅ [Pre-commit] 构建检查通过"
else
echo "❌ [Pre-commit] 构建检查失败!请修复编译错误后重新提交"
exit 1
fi
echo "========================================"
echo "✅ [Pre-commit] 所有检查通过,允许提交"
echo "========================================"

View File

@@ -16,7 +16,8 @@
"test": "vitest",
"test:run": "vitest run",
"test:coverage": "vitest run --coverage",
"test:ui": "vitest --ui"
"test:ui": "vitest --ui",
"prepare": "cd .. && husky openhis-ui-vue3/.husky"
},
"repository": {
"type": "git",
@@ -80,5 +81,14 @@
"vite-plugin-vue-mcp": "^0.3.2",
"vitest": "^4.0.18",
"vue-tsc": "^3.1.8"
},
"lint-staged": {
"openhis-ui-vue3/**/*.{js,vue,ts}": [
"cd openhis-ui-vue3 && npm run lint -- --fix",
"cd openhis-ui-vue3 && npm run build:dev"
],
"**/*.{js,vue,ts}": [
"echo \"文件变更已记录构建检查将在pre-commit中执行\""
]
}
}
}