hookehuyr

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

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