repoctl 概览
repoctl 是这套模板推荐给使用者的包名。默认命令是 repo,目标是把 pnpm workspace、Turborepo、模板创建、诊断报告和提交前校验收敛到一组稳定入口里。
它不替代 pnpm、Turbo 或 changesets,而是把这些工具在 monorepo 里的常见动作串起来。
什么时候使用 repoctl
| 场景 | 推荐入口 |
|---|---|
| 给已有 pnpm workspace 补齐标准脚本和配置 | pnpm exec repo init |
| 判断当前仓库是不是能顺利开发 | pnpm exec repo doctor |
| 创建新的包、应用、文档站或 CLI | pnpm exec repo new |
| 提交前复现推荐校验链路 | pnpm exec repo check |
| 同步模板最新标准资产 | pnpm exec repo upgrade |
| 给 CI、编辑器或脚本读取结构化结果 | --json --out <file> |
推荐命令层级
1. 生成仓库里的 repo:* 根脚本
bash
pnpm run repo:init
pnpm run repo:doctor
pnpm run repo:new
pnpm run repo:check这是给日常开发和团队文档使用的入口。短、稳定、不需要先解释 CLI 包名,也不会和 pnpm 内置命令冲突。
2. 明确调用 repo CLI
bash
pnpm exec repo init
pnpm exec repo doctor
pnpm exec repo templates
pnpm exec repo new sdk --template tsdown
pnpm exec repo check --dry-run这是文档、CI、脚本和排障里最清楚的写法。
3. 分组命令
bash
pnpm exec repo ws ls
pnpm exec repo tg init --all
pnpm exec repo env support --markdown --redact
pnpm exec repo config inspect这些入口适合已经熟悉 repoctl 的维护者,用来做更细的 workspace、tooling、环境和配置操作。
repoctl 管什么
repoctl 把 monorepo 里最容易分散的动作收敛为五条主线:
| 主线 | 代表命令 | 解决的问题 |
|---|---|---|
| 初始化 | repo init / repo upgrade | 生成或同步 workspace、根脚本、Husky、lint-staged 等资产 |
| 诊断 | repo doctor | 判断仓库根目录、运行时、脚本、配置和提交链路是否就绪 |
| 创建 | repo templates / repo new | 使用内置模板生成库、应用、服务、文档站和 CLI |
| 校验 | repo check / repo verify | 统一 pre-commit、staged typecheck、pre-push 和 commit-msg |
| 报告 | repo env support | 输出可保存、可脱敏、可给 CI 和协作者读取的上下文 |
这几条主线都支持非交互参数。需要自动化时,优先使用 --json、--markdown、--out <file>、--redact 和 --dry-run 组合。
新人和维护者的边界
| 角色 | 推荐只记住 | 需要深入时再看 |
|---|---|---|
| 新成员 | pnpm run repo:doctor、pnpm run repo:new、pnpm run repo:check | 按场景选命令 |
| 包维护者 | repo templates、repo new --template、repo check --full | 模板资产治理 |
| CI 维护者 | repo doctor --strict、repo check --full、repo env support | 报告与自动化输出 |
| 平台维护者 | repo init、repo upgrade、repo config inspect | 执行模型 和 配置文件 |
命令入口
repoctl 包提供多个 bin,例如:
bash
pnpm exec repoctl doctor
pnpm exec repoctl new文档统一推荐 repo,是为了减少新人需要记住的名字。底层实现来自同一套 CLI。
