# 贡献指南 · Contributing Guide 感谢你考虑为 JKVideo 做贡献! --- ## 开发环境搭建 ### 推荐方式:Dev Build(完整功能) ```bash git clone https://github.com/你的用户名/JKVideo.git cd JKVideo npm install npx expo run:android # 需要连接 Android 设备或启动模拟器 ``` Dev Build 支持 DASH 原生播放(react-native-video),是开发视频播放功能的必选方式。 ### Expo Go 模式(快速验证 UI) ```bash npm install npx expo start ``` 适合开发 UI 组件、导航、弹幕列表等不依赖原生视频解码的功能。 ### Web 端 ```bash npx expo start --web ``` Web 端图片防盗链需要本地代理,在单独终端启动: ```bash node scripts/proxy.js # 监听 localhost:3001 ``` --- ## 提交规范(Conventional Commits) 请遵循以下格式: ``` (): <描述> [可选正文] ``` | type | 含义 | |---|---| | `feat` | 新功能 | | `fix` | Bug 修复 | | `refactor` | 重构(不改变功能) | | `docs` | 文档更新 | | `chore` | 构建脚本、依赖更新等 | | `style` | 代码格式(不影响逻辑) | | `perf` | 性能优化 | 示例: ``` feat(danmaku): 添加弹幕字体大小设置 fix(player): 修复 DASH MPD 解析在 Android 12 上崩溃的问题 docs: 更新 README 快速开始步骤 ``` --- ## PR 提交流程 1. Fork 本仓库并创建功能分支:`git checkout -b feat/your-feature` 2. 在本地完成开发并测试 3. 提交符合规范的 commit 4. 发起 Pull Request,填写模板中的说明 5. 等待 Code Review --- ## 注意事项 - **禁止**在代码中硬编码任何账号信息(SESSDATA、uid 等) - **不接受**涉及自动化批量操作、绕过平台反爬的 PR - 新增功能请优先开 Issue 讨论,避免重复劳动 - 涉及 API 参数变更时,请同步更新 `services/api.ts` 中的注释 --- ## 问题反馈 - Bug 报告:[提交 Issue](https://github.com/你的用户名/JKVideo/issues/new?template=bug_report.yml) - 功能建议:[提交 Feature Request](https://github.com/你的用户名/JKVideo/issues/new?template=feature_request.yml) - 使用问题:优先在 [Discussions](https://github.com/你的用户名/JKVideo/discussions) 提问