开发指南
本地开发、调试、扩展技能词库和新增 Sprint 的完整指南。
开发指南
环境要求
| 工具 | 版本 | 说明 |
|---|---|---|
| Python | 3.x | 用于启动静态 HTTP 服务器 |
| Node.js | 任意 | 仅用于 npm run lint(可选) |
| 浏览器 | 现代浏览器 | 支持 ES Modules、FileReader API |
本地开发
⚠️ 必须通过 HTTP 服务器访问,不能直接双击打开
index.html。 原因:ES Modules 和fetch()需要 HTTP 协议。
目录说明
添加新技能词
技能词库在 src/config/index.js 的 SKILL_DICTIONARY 中:
添加后自动生效,无需重启(刷新浏览器即可)。
调整匹配权重
在 src/config/index.js 中修改 WEIGHTS:
新增 Sprint
遵循 Sprint Contract 格式,在 CLAUDE.md 中添加新 Sprint:
然后按 Harness 三 Agent 流程:
运行测试
常见问题
fetch 跨域报错
原因:直接用 file:// 打开文件。
解决:通过 npm run dev 或 python3 -m http.server 4173 启动后访问。
PDF 解析失败
原因:pdfjs-dist 需要从 CDN 加载,离线状态下失败。 解决:检查网络连接,或改用 JSON / TXT 格式简历。
AI 返回解析错误
原因:AI 返回了非 JSON 格式的内容(例如包含多余解释文字)。
处理:系统会自动 fallback 到本地算法,aiAnalysis 字段会说明原因。
技能匹配率异常低
可能原因:
- 简历格式为 TXT / PDF,
skills数组只有粗解析的少量词 - JD 中的技能写法与词库不一致(如 JD 写
k8s,简历写kubernetes)
解决:
- 使用 JSON 格式简历,手动填写完整的
skills数组 - 在
src/config/index.js的SKILL_DICTIONARY中补充别名词条
构建与部署
项目是纯静态文件,无需构建步骤:
注意:
.env文件包含配置信息,不要上传到公开仓库。 部署时在平台的环境变量设置中配置,或使用.env.example中的默认值。