hookehuyr

chore(husky): 修复 git hooks 处理多行文件和正则问题

- pre-commit: 使用 tr | xargs 处理多行文件列表
- commit-msg: 简化正则避免括号转义问题
......@@ -17,15 +17,14 @@ echo ""
# Commit Message 格式验证
# ============================================
# 允许的类型
TYPES="feat|fix|docs|style|refactor|perf|test|chore|revert"
# 允许的类型(使用 | 分隔而不是 |)
ALLOWED_TYPES="feat|fix|docs|style|refactor|perf|test|chore|revert"
# 允许的范围(常见模块)
SCOPES="material|product|plan|user|auth|api|ui|config|build|ci|release|husky|chore"
ALLOWED_SCOPES="material|product|plan|user|auth|api|ui|config|build|ci|release|husky|chore"
# 正则表达式:type(scope): subject
# 示例:feat(material): 添加文档列表分类导航
PATTERN="^($TYPES)(\(($SCOPES)\))?: .{1,50}"
# 检查格式 - 使用简单的正则
PATTERN="^([a-z]+)\\(([a-z]+\\))?: .{1,50}"
# 检查格式
if ! echo "$COMMIT_MSG" | grep -qE "$PATTERN"; then
......
......@@ -45,8 +45,8 @@ echo ""
echo "📋 ${BLUE}步骤 2/4: 检查调试代码${NC}"
if [ -n "$STAGED_FILES" ]; then
# 检查 console.log
CONSOLE_LOGS=$(git diff --cached "$STAGED_FILES" | grep -E "^\+.*console\.(log|debug|info)" || true)
# 检查 console.log - 将换行符替换为空格
CONSOLE_LOGS=$(echo "$STAGED_FILES" | tr '\n' ' ' | xargs git diff --cached | grep -E "^\+.*console\.(log|debug|info)" || true)
if [ -n "$CONSOLE_LOGS" ]; then
echo ""
......@@ -55,8 +55,8 @@ if [ -n "$STAGED_FILES" ]; then
echo ""
fi
# 检查 debugger
DEBUGGERS=$(git diff --cached "$STAGED_FILES" | grep -E "^\+.*debugger" || true)
# 检查 debugger - 将换行符替换为空格
DEBUGGERS=$(echo "$STAGED_FILES" | tr '\n' ' ' | xargs git diff --cached | grep -E "^\+.*debugger" || true)
if [ -n "$DEBUGGERS" ]; then
echo ""
......