从源码构建
Kabegame 是一个 Deno 驱动的 monorepo:前端使用 Vue 3,桌面与 Android 应用由 Tauri 2 和 Rust 提供。本文给出贡献者首次拉起仓库所需的最短路径;插件开发流程另见插件开发指南,安装发行版则见安装与首次启动。
前置要求
- Deno 2.9.0:可以安装官方 2.9.0 版本,也可以在仓库内运行
deno task build:deno,从third/deno构建固定版本的 CLI。 - Rust 工具链:通过 rustup 安装当前稳定版 Rust。
- Tauri 2 的平台依赖:按 Tauri prerequisites 为目标系统安装编译工具和系统库。
- Git 子模块:克隆时使用
--recurse-submodules,或在已有 checkout 中运行git submodule update --init --recursive。
本仓库不直接使用全局安装的 cargo-tauri。Tauri 源码位于 third/tauri,Kabegame 的改动保存在 third-patches/tauri/;先运行:
deno task patch tauri随后 TauriCliPlugin 会把 fork 的 cargo-tauri 接入 dev、build 与 Android check 流程,并按需增量构建。实现细节见 cocs/tauri/TAURI_CLI_FORK.md。
安装依赖
在仓库根目录执行:
deno installdeno task preparedeno task --cwd src-crawler-plugins prepare两个 prepare 分别安装根仓库与 src-crawler-plugins 的 Husky Git hooks。deno install 不会自动执行它们,因此新 checkout 至少需要手动运行一次。
开发、检查与构建
所有顶层命令都由 scripts/run.ts 统一编排:
# 启动桌面开发环境(Vite + Tauri,前端端口 1420)deno task dev -c kabegame
# 启动并在本地打包全部爬虫插件deno task dev -c kabegame --mode local
# 构建全部组件(kabegame + kabegame-cli)deno task b
# 只构建主应用deno task b -c kabegame
# 检查前端类型与 Rust(check 必须用 -c 指定组件)deno task check -c kabegame仓库内的 check-kabegame skill 是 deno task check 的省心封装:它会保存完整日志,并从大量 warning 中提取真正的 error。日常验证优先使用检查命令,不要用完整构建代替检查。
构建模式
--mode 选择应用的目标形态:
| 模式 | 用途 |
|---|---|
standard | 默认桌面版本,包含插件商店、虚拟磁盘和桌面视频摄入能力。 |
android | Android 应用;开发时使用 deno task dev -c kabegame --mode android。 |
web | Web 目标,不包含 Tauri 原生栈。 |
构建系统、平台库与发布打包的深入说明集中在 cocs/build/。
FFmpeg
third/FFmpeg 是 Git 子模块。桌面端视频摄入、预览压缩和尺寸处理依赖仓库构建的 FFmpeg / x264 静态库:
deno task build:ffmpegAndroid 使用 aarch64 交叉编译产物:
deno task build:ffmpeg --target android构建前请确认相关子模块已初始化;Android 还需要正确配置 NDK。视频摄入链路见 cocs/downloader-tasks/VIDEO_INGEST.md。
数据目录模式
--data 决定开发或构建出来的程序读写哪组数据:
| 模式 | 默认场景 | 位置与用途 |
|---|---|---|
dev | deno task dev | 使用仓库内 .kabegame/debug/data、.kabegame/debug/cache 与 .kabegame/debug/tmp,不会污染已安装版本。 |
prod | 其他顶层命令 | 使用系统用户数据目录,与正式安装版共享数据。 |
需要用真实数据调试时,可以运行:
deno task dev -c kabegame --data prod各平台正式数据目录见安装与首次启动。