#!/usr/bin/env python3 import re # 读取文件 with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f: content = f.read() print("原始文件长度:", len(content.split('\n')), "行") # 创建备份 with open('src/mocks/resumeInterviewMock.js.backup_final', 'w', encoding='utf-8') as f: f.write(content) print("已创建备份: resumeInterviewMock.js.backup_final") # 查找问题的root cause lines = content.split('\n') # 检查第6516-6520行的具体问题 print("\n检查问题行(6510-6525):") for i in range(6509, min(6525, len(lines))): print(f"{i+1}: {lines[i]}") # 解决方案:确保第6518行的分号前面有正确的逗号 # 问题是"旅游"数组结束后resumeTemplates对象也结束,但是JavaScript期望有逗号或更多内容 # 检查最后一个行业的结构 travel_end_pattern = r'(\s*\]\s*)\n(\s*\/\/ 添加空对象以便语法正确\s*\n\s*"_end": \[\]\s*\n\s*\};)' match = re.search(travel_end_pattern, content) if match: print("找到了旅游数组结束的地方") # 移除临时的_end键,直接结束对象 content = re.sub(travel_end_pattern, r'\1\n};', content) print("修复了临时的_end键") else: print("没有找到_end键,尝试其他修复方法") # 另一个可能的问题:检查studentInfo结构的结束 # 确保所有的大括号正确嵌套 content = re.sub(r'(\s*personal_summary: "[^"]*")\n(\s*\}\s*\n\s*\}\s*\n\s*\}\s*\n\s*\],)', r'\1\n }\2', content) # 写回文件 with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f: f.write(content) print("修复完成,正在验证语法...") import subprocess result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'], capture_output=True, text=True) if result.returncode == 0: print("✅ 语法验证通过!") else: print(f"❌ 仍有语法错误:{result.stderr}") # 如果还有错误,显示具体错误行 import re match = re.search(r':(\d+)', result.stderr) if match: line_num = int(match.group(1)) print(f"\n错误行 {line_num} 附近:") for i in range(max(0, line_num-3), min(len(lines), line_num+3)): prefix = ">>> " if i == line_num-1 else " " print(f"{prefix}{i+1}: {lines[i][:100]}")