65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
|
|
#!/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]}")
|