参与开发
面向想改 MANYOYO 本身的人。面向 AI 编码助手的协作约定在仓库根目录的 AGENTS.md,这里是给人看的概要。
从源码运行
要求 Node.js >= 22,以及 Docker 或 Podman。
git clone https://github.com/xcanwin/manyoyo.git && cd manyoyo
npm install
npm start # 直接运行无参入口(打开网页界面)
npm run serve:dev # 前台调试网页服务(127.0.0.1:3000)
npm link # 或链接成全局命令 manyoyo / my测试
npm run test:unit # 开发阶段:Jest 单测 + 前端 Vitest(快)
npm test # 提交前:带覆盖率的 Jest + 前端 Vitest
npm run test:integration # 需要真实容器运行时的集成测试
npm run test:installer # 只跑安装脚本用例
npm run lint:sh # shellcheck 检查安装脚本(需本机装有 shellcheck)网页前端
网页界面源码在仓库根目录的 frontend/(Vite + React + TypeScript + shadcn/ui),构建产物是单文件 lib/web/index.html。
cd frontend && npm ci && cd .. # 首次需要单独装一次依赖
npm run build:web # 构建
npm run dev:web # 热更新开发(另开终端运行 manyoyo serve 作为后端)细节与规范见 frontend/AGENTS.md;服务端约束见 lib/web/AGENTS.md。
文档站
文档使用 VitePress,推送 main 后由 GitHub Actions 部署到 GitHub Pages。中文是主维护语言,英文同批同步,结构保持一致。
npm ci --include=optional # 必须先安装依赖,再构建,不能并行
npm run docs:dev # 本地开发,默认只监听 127.0.0.1:5173
npm run docs:build # 构建并检查死链
npm run docs:check # 构建后再检查跳转页、canonical、description 与 sitemap发布概要
发布由维护者执行,唯一入口是发布控制台。代码提交并合并到 main 之后,一条命令 npm run release -- --remote(或控制台网页里的“一键发布”,点一次“开始”)就把推送 main 和后面所有步骤交给 GitHub Actions:测试、镜像(需要时)、四个平台的安装包、Release 草稿、公开前验证、公开、npm 发布、公开后验证,全程不需要人在场,可以关电脑;--remote-status 查看进度和结果。也可以在网页里逐阶段手动执行(预检 → 版本 → 提交 → 合并 main → 镜像 → 安装包 → Release 草稿 → 挂载安装包 → 公开发布 → 验证 ∥ npm)。agent 用命令行:--status [--json] 看状态,--run <阶段> --yes 执行,--help 有完整用法;--dry-run 只打印命令。Release 说明由提交列表自动生成。Release 先建草稿、挂好安装包并验证通过再公开,所以 releases/latest 不会出现空版本或坏版本。安装包、镜像和 Release 只在 CI 中构建并经隐私扫描。完整说明见 AGENTS.md 的「发版(维护者)」。