@icebreakers/monorepo-templates 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/assets/.github/workflows/release.yml +42 -2
  2. package/assets/commitlint.config.ts +1 -3
  3. package/assets/eslint.config.js +2 -14
  4. package/assets/lint-staged.config.js +1 -3
  5. package/assets/package.json +8 -6
  6. package/assets/stylelint.config.js +1 -3
  7. package/assets/tsconfig.json +2 -1
  8. package/assets/vitest.config.ts +1 -3
  9. package/assets-data.mjs +0 -1
  10. package/dist/cli.d.mts +1 -0
  11. package/dist/cli.mjs +12 -0
  12. package/dist/index.mjs +1 -260
  13. package/dist/prepare-CtCifHGT.mjs +306 -0
  14. package/package.json +2 -2
  15. package/templates/client/package.json +2 -2
  16. package/templates/client/vite.config.ts +27 -21
  17. package/templates/vitepress/.vitepress/config.ts +152 -69
  18. package/templates/vitepress/en/index.md +63 -0
  19. package/templates/vitepress/en/knowledge/monorepo.md +37 -0
  20. package/templates/vitepress/en/repoctl/adopt-existing.md +131 -0
  21. package/templates/vitepress/en/repoctl/aliases.md +71 -0
  22. package/templates/vitepress/en/repoctl/commands.md +120 -0
  23. package/templates/vitepress/en/repoctl/config.md +69 -0
  24. package/templates/vitepress/en/repoctl/getting-started.md +116 -0
  25. package/templates/vitepress/en/repoctl/index.md +74 -0
  26. package/templates/vitepress/en/repoctl/scenarios.md +117 -0
  27. package/templates/vitepress/en/repoctl/templates.md +128 -0
  28. package/templates/vitepress/en/repoctl/troubleshooting.md +96 -0
  29. package/templates/vitepress/en/repoctl/workflows.md +89 -0
  30. package/templates/vitepress/getting-started.md +21 -224
  31. package/templates/vitepress/index.md +47 -176
  32. package/templates/vitepress/monorepo/commands.md +13 -283
  33. package/templates/vitepress/monorepo/manage.md +16 -3
  34. package/templates/vitepress/monorepo/publish.md +52 -6
  35. package/templates/vitepress/monorepo/templates.md +14 -60
  36. package/templates/vitepress/monorepo/troubleshooting.md +14 -220
  37. package/templates/vitepress/package.json +3 -2
  38. package/templates/vitepress/repoctl/adopt-existing.md +135 -0
  39. package/templates/vitepress/repoctl/aliases.md +71 -0
  40. package/templates/vitepress/repoctl/commands.md +154 -0
  41. package/templates/vitepress/repoctl/config.md +81 -0
  42. package/templates/vitepress/repoctl/getting-started.md +122 -0
  43. package/templates/vitepress/repoctl/index.md +74 -0
  44. package/templates/vitepress/repoctl/scenarios.md +119 -0
  45. package/templates/vitepress/repoctl/templates.md +156 -0
  46. package/templates/vitepress/repoctl/troubleshooting.md +98 -0
  47. package/templates/vitepress/repoctl/workflows.md +105 -0
  48. package/templates/vitepress/tools/changeset.md +11 -0
  49. package/templates/vitepress/tools/husky.md +17 -0
  50. package/templates/vitepress/tools/lint-staged.md +10 -0
  51. package/templates/vitepress/tools/llms-txt.md +29 -0
  52. package/templates/vitepress/tools/pnpm.md +26 -0
  53. package/templates/vitepress/tools/turborepo.md +17 -0
  54. package/templates/vitepress/why/examples/2.npm-basic-package/README.md +1 -1
  55. package/templates/vitepress/why/examples/3.npm-basic-package/README.md +1 -1
  56. package/templates/vitepress/wrangler.jsonc +5 -0
  57. package/templates/vue-lib/package.json +1 -1
@@ -1,67 +1,21 @@
1
1
  # 模板速查
2
2
 
3
- 内置模板由 `@icebreakers/monorepo-templates` 维护,CLI、脚手架和文档都复用同一份模板元数据。
3
+ 模板创建已经收敛到 repoctl 文档:
4
4
 
5
- ## 模板列表
5
+ - [repoctl 模板与创建](../repoctl/templates.md)
6
+ - [repoctl 快速开始](../repoctl/getting-started.md)
6
7
 
7
- | Key | Category | Source | Default target | Description |
8
- | ------------- | -------- | --------------------- | ------------------ | ----------------------------------- |
9
- | `tsdown` | library | `templates/tsdown` | `packages/tsdown` | 使用 tsdown 构建的 TypeScript 库包 |
10
- | `vue-lib` | library | `templates/vue-lib` | `packages/vue-lib` | Vue 3 组件库模板,适合沉淀可复用 UI |
11
- | `vue-hono` | app | `templates/client` | `apps/client` | Vue 3 + Hono 的前后端一体应用模板 |
12
- | `hono-server` | service | `templates/server` | `apps/server` | Hono API 服务模板 |
13
- | `vitepress` | docs | `templates/vitepress` | `apps/website` | VitePress 文档站模板 |
14
- | `cli` | tool | `templates/cli` | `apps/cli` | TypeScript 命令行工具模板 |
8
+ ## monorepo 知识点:模板为什么重要
15
9
 
16
- ## 查看模板
10
+ 当仓库里存在多种产物时,模板能把重复选择前置成稳定默认值:
17
11
 
18
- ```bash
19
- repo templates
20
- repo templates tsdown
21
- repo templates --category library
22
- ```
12
+ | 产物 | 常见目录 | 关注点 |
13
+ | ------------- | ------------------------ | ------------------------------ |
14
+ | TypeScript 库 | `packages/*` | exports、types、构建和 tsd |
15
+ | Vue 组件库 | `packages/*` | SFC、样式校验、类型声明 |
16
+ | 应用 | `apps/*` | dev、build、部署资产 |
17
+ | 服务 | `apps/*` | API 入口、运行时类型、环境变量 |
18
+ | 文档站 | `apps/*` | VitePress 配置、导航、内容结构 |
19
+ | CLI | `apps/*` 或 `packages/*` | bin 入口、参数解析、发布 |
23
20
 
24
- 需要给脚本读取时:
25
-
26
- ```bash
27
- repo templates --json
28
- repo templates tsdown --json
29
- ```
30
-
31
- 需要同步文档片段时:
32
-
33
- ```bash
34
- repo templates --markdown
35
- repo templates tsdown --markdown
36
- repo templates --markdown --out docs/templates.md
37
- ```
38
-
39
- ## 创建前预览
40
-
41
- ```bash
42
- repo new sdk --template tsdown --dry-run
43
- repo new website --template vitepress --dry-run
44
- repo new website --template vitepress --json
45
- repo new website --template vitepress --json --out plans/website.json
46
- ```
47
-
48
- `--dry-run` 不写入磁盘,只展示模板、源目录、目标目录、package name 和输出的 package json 文件。
49
- `--json` 输出同一份创建计划的结构化数据,隐含 `--dry-run`,适合 CI、编辑器和自动化脚本。
50
- `--out <file>` 可以把文本或 JSON 预览写入文件,也隐含 `--dry-run`。
51
-
52
- 显式传入的 `--template` 会先校验。模板 key 拼错时,命令会失败并提示相近 key,而不是静默回退到默认模板。
53
-
54
- ## 健康检查
55
-
56
- ```bash
57
- repo templates --check
58
- repo templates --check --json
59
- ```
60
-
61
- 模板健康检查会确认:
62
-
63
- - 模板 source / target 没有重复。
64
- - 每个模板 source 目录都存在。
65
- - 每个模板根目录都有 `package.json`。
66
- - 每个模板都有 category 和 description。
67
- - 模板源目录里没有会被脚手架过滤掉的临时或生成文件。
21
+ repoctl 的 `repo templates` 和 `repo new` 负责把这些约定落实到文件系统。
@@ -1,226 +1,20 @@
1
- # 排障指南
1
+ # 常见问题排障
2
2
 
3
- 这一页不讲原理,直接讲最常见的问题和对应动作。
3
+ repoctl 排障文档已经集中到:
4
4
 
5
- ## 第一反应:先跑 `repo doctor`
5
+ - [repoctl 排障与报告](../repoctl/troubleshooting.md)
6
+ - [repoctl 命令速查](../repoctl/commands.md)
6
7
 
7
- 如果你不确定问题在哪,先执行:
8
+ ## monorepo 知识点:先区分问题类型
8
9
 
9
- ```bash
10
- pnpm doctor
11
- ```
10
+ 排障前先判断问题属于哪一类:
12
11
 
13
- 需要把诊断结果交给 CI、编辑器或机器人时:
12
+ | 类型 | 先看什么 | 常用命令 |
13
+ | -------------- | ------------------------------------- | --------------------------------------- |
14
+ | 仓库结构问题 | 根目录、workspace 文件、Node 版本 | `repo doctor` |
15
+ | 模板创建问题 | 模板 key、目标目录、创建计划 | `repo templates` / `repo new --dry-run` |
16
+ | 提交前校验问题 | staged 文件、workspace 归属、任务路由 | `repo check --dry-run` |
17
+ | 环境差异问题 | Node、pnpm、Git、CI、路径 | `repo env support --markdown --redact` |
18
+ | 配置冲突问题 | `repoctl.config.ts` 与旧配置文件 | `repo config inspect` |
14
19
 
15
- ```bash
16
- pnpm exec repo doctor --json --out reports/doctor.json
17
- pnpm exec repo doctor --markdown --redact --out reports/doctor.md
18
- ```
19
-
20
- 需要让 CI 对 warning 也失败时:
21
-
22
- ```bash
23
- pnpm exec repo doctor --strict --json --out reports/doctor.json
24
- pnpm exec repo doctor --strict --markdown --redact --out reports/doctor.md
25
- ```
26
-
27
- 需要把运行环境一起发给同事、CI 或机器人时:
28
-
29
- ```bash
30
- pnpm exec repo env paths --json --out reports/paths.json
31
- pnpm exec repo env paths --markdown --redact --out reports/paths.md
32
- pnpm exec repo config inspect --json --out reports/config.json
33
- pnpm exec repo config inspect --markdown --redact --out reports/config.md
34
- pnpm exec repo env info --json --out reports/env.json
35
- pnpm exec repo env info --markdown --redact --out reports/env.md
36
- pnpm exec repo env snapshot --json --out reports/snapshot.json
37
- pnpm exec repo env snapshot --markdown --redact --out reports/snapshot.md
38
- pnpm exec repo env snapshot --markdown --redact --strict --out reports/snapshot.md
39
- pnpm exec repo env support --json --out reports/support.json
40
- pnpm exec repo env support --markdown --redact --out reports/support.md
41
- pnpm exec repo env support --markdown --redact --strict --out reports/support.md
42
- ```
43
-
44
- `env paths` 会列出 repoctl / monorepo 配置文件的全部候选扩展名,不只检查 `.ts` 文件。
45
- 如果要把环境报告发给外部协作者,优先加 `--redact` 脱敏本机绝对路径;如果是贴到 issue 或 PR 评论里,用 `--markdown` 生成摘要。
46
- 在 CI 中可以再加 `--strict`,这样会先写出排障包,再在 `doctor` 有 fail 或 warn 时返回失败码。
47
-
48
- 它会优先帮你排这些低成本但高频的问题:
49
-
50
- - 当前目录不是仓库根目录
51
- - 缺少 `pnpm-workspace.yaml`
52
- - Node 版本不满足要求
53
- - 根 `package.json` 没装 `repoctl` / `@icebreakers/monorepo`
54
- - 根快捷脚本没同步齐
55
- - `repoctl.config.ts` 与 `monorepo.config.ts` 同时存在
56
- - `.husky/pre-commit` 和 `lint-staged.config.js` 只配了一半
57
-
58
- ## 常见问题
59
-
60
- ### 1. 提示当前目录不像 monorepo 根目录
61
-
62
- 通常是因为你在子包目录里执行了命令,或者根目录缺少这些文件:
63
-
64
- ```txt
65
- package.json
66
- pnpm-workspace.yaml
67
- ```
68
-
69
- 先回到根目录再执行。
70
-
71
- 如果要确认 CLI 实际识别到了哪些 workspace 包,可以输出一份列表:
72
-
73
- ```bash
74
- pnpm exec repo ws ls --json --out reports/workspaces.json
75
- pnpm exec repo ws ls --markdown --redact --out reports/workspaces.md
76
- ```
77
-
78
- ### 2. Node 版本不满足要求
79
-
80
- 看根 `package.json`:
81
-
82
- ```json
83
- {
84
- "engines": {
85
- "node": ">=20.0.0"
86
- }
87
- }
88
- ```
89
-
90
- 切到满足要求的 Node 版本后,再跑:
91
-
92
- ```bash
93
- pnpm install
94
- pnpm doctor
95
- ```
96
-
97
- ### 3. `repoctl.config.ts` 和 `monorepo.config.ts` 同时存在
98
-
99
- 这是明确的冲突状态,不是“都能读”。
100
-
101
- 处理方式:
102
-
103
- - 保留 `repoctl.config.ts`
104
- - 删除 `monorepo.config.ts`
105
-
106
- 除非你在迁移历史仓库,否则没有必要双持。
107
-
108
- ### 4. 根脚本没有 `setup` / `new` / `check` / `doctor`
109
-
110
- 先同步一次标准资产:
111
-
112
- ```bash
113
- pnpm exec repo upgrade
114
- ```
115
-
116
- CI 或非 TTY 环境使用:
117
-
118
- ```bash
119
- pnpm exec repo setup --yes
120
- ```
121
-
122
- ### 5. `repo new --template` 提示未知模板
123
-
124
- 先运行:
125
-
126
- ```bash
127
- pnpm exec repo templates
128
- ```
129
-
130
- 确认模板 key。`--template` 是严格校验的,拼写错误会直接失败;如果能判断出相近 key,CLI 会额外提示 `did you mean ...`。
131
-
132
- 如果你只是不想等,也可以手动把这些脚本加回根 `package.json`。
133
-
134
- ### 5. 提交前校验没有正常工作
135
-
136
- 先检查这两个文件是不是同时存在:
137
-
138
- ```txt
139
- .husky/pre-commit
140
- lint-staged.config.js
141
- ```
142
-
143
- 只存在一个,通常就是半残状态。
144
-
145
- 可选动作:
146
-
147
- ```bash
148
- pnpm exec repo upgrade
149
- pnpm check
150
- ```
151
-
152
- ### 6. ESLint / Vitest 配置引用 `tooling/load-tooling-module.mjs`
153
-
154
- 这是旧模板生成的本仓库源码 loader。普通使用者仓库应该直接 import `repoctl/tooling`。
155
-
156
- 处理方式:
157
-
158
- ```bash
159
- pnpm exec repo upgrade --yes
160
- pnpm doctor
161
- ```
162
-
163
- 如果自动化里必须保留本地修改,用 `pnpm exec repo upgrade --no-overwrite` 查看 skipped 文件,再手动迁移。
164
-
165
- ### 7. `repo` 命令不可用
166
-
167
- 通常是依赖还没安装,或者当前仓库没把 CLI 包放进根依赖。
168
-
169
- 先执行:
170
-
171
- ```bash
172
- pnpm install
173
- pnpm doctor
174
- ```
175
-
176
- 如果根本没有安装 CLI 依赖,补一个即可:
177
-
178
- ```bash
179
- pnpm add -D repoctl
180
- ```
181
-
182
- ## `doctor` 和 `check` 的区别
183
-
184
- 很多人遇到问题会这两个命令来回试,其实职责不同:
185
-
186
- | 命令 | 更像什么 |
187
- | -------- | ---------- |
188
- | `doctor` | 仓库体检 |
189
- | `check` | 提交前校验 |
190
-
191
- 如果你怀疑是“仓库架子不完整”,先用 `doctor`。
192
- 如果你怀疑是“这次改动过不了 lint / typecheck / test”,先用 `check`。
193
-
194
- ## 什么时候需要 `upgrade`
195
-
196
- 下面这些情况,优先考虑 `repo upgrade`:
197
-
198
- - 文档里的根脚本在你仓库里没有
199
- - 默认的 Husky / lint-staged / config 资产缺失
200
- - 模板最近更新过,而你的仓库还是旧结构
201
- - 你希望重新同步推荐默认值
202
-
203
- ## 一个实用排查顺序
204
-
205
- 大多数问题按这个顺序处理最省时间:
206
-
207
- ```bash
208
- pnpm install
209
- pnpm doctor
210
- pnpm exec repo upgrade
211
- pnpm doctor
212
- pnpm check
213
- pnpm build
214
- ```
215
-
216
- 思路是:
217
-
218
- 1. 先把依赖装齐
219
- 2. 先修仓库架子问题
220
- 3. 再看当前改动的校验问题
221
-
222
- ## 还有问题时看哪里
223
-
224
- - 日常命令边界不清楚:[命令速查](./commands.md)
225
- - 不确定仓库怎么管理:[如何管理 monorepo](./manage.md)
226
- - 发包问题:[发包与变更日志](./publish.md)
20
+ 旧页面继续保留为知识点索引,具体排查步骤以后优先维护在 repoctl 分区。
@@ -2,9 +2,9 @@
2
2
  "name": "@icebreakers/website",
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
- "description": "https://monorepo.icebreaker.top source code",
5
+ "description": "https://repo.icebreaker.top source code",
6
6
  "author": "ice breaker <hi@sonofmagic.top>",
7
- "homepage": "https://monorepo.icebreaker.top",
7
+ "homepage": "https://repo.icebreaker.top",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/sonofmagic/monorepo-template.git",
@@ -35,6 +35,7 @@
35
35
  "mermaid": "^11.14.0",
36
36
  "tailwindcss": "^4.2.4",
37
37
  "vitepress": "^1.6.4",
38
+ "vitepress-plugin-llms": "^1.12.2",
38
39
  "vitepress-plugin-mermaid": "^2.0.17"
39
40
  }
40
41
  }
@@ -0,0 +1,135 @@
1
+ # 接入已有仓库
2
+
3
+ repoctl 不只适合新模板仓库。它也可以渐进接入已有 pnpm workspace,用诊断报告和非覆盖同步把风险降下来。
4
+
5
+ ## 适合接入的仓库
6
+
7
+ 优先满足这些条件:
8
+
9
+ - 已经使用 pnpm 或准备迁移到 pnpm。
10
+ - 有根 `package.json`。
11
+ - 能接受 `apps/*`、`packages/*`、`examples/*` 这类 workspace 目录约定。
12
+ - 希望统一 `setup`、`doctor`、`new`、`check` 这类日常入口。
13
+
14
+ 如果仓库还不是 pnpm workspace,先补最小 `pnpm-workspace.yaml`:
15
+
16
+ ```yaml
17
+ packages:
18
+ - apps/*
19
+ - packages/*
20
+ ```
21
+
22
+ ## 第一步:安装并初始化
23
+
24
+ ```bash
25
+ pnpm add -D repoctl
26
+ pnpm exec repo setup --yes
27
+ ```
28
+
29
+ `setup --yes` 会使用安全默认值。它会补齐推荐脚本和 workspace patterns,但不会无条件覆盖已有 README、package.json、pnpm-workspace.yaml 或 tooling 配置。
30
+
31
+ ## 第二步:保存第一次诊断
32
+
33
+ ```bash
34
+ pnpm exec repo doctor --markdown --redact --out reports/doctor-before.md
35
+ pnpm exec repo doctor --json --out reports/doctor-before.json
36
+ ```
37
+
38
+ 建议把第一次报告提交到 PR 评论或 artifact,而不是只看终端输出。
39
+
40
+ 重点看这些项:
41
+
42
+ | 检查项 | 常见问题 |
43
+ | ---------------------------- | ---------------------------------------------------- |
44
+ | `package-json` | 当前目录不是仓库根目录 |
45
+ | `workspace-manifest` | 缺少 `pnpm-workspace.yaml` |
46
+ | `node-version` | 根 package 没声明 `engines.node` 或版本不匹配 |
47
+ | `tool-package` | 没安装 `repoctl` |
48
+ | `root-scripts` | 缺少 `setup/new/check/doctor` |
49
+ | `config-file` | `repoctl.config.ts` 和 `monorepo.config.ts` 同时存在 |
50
+ | `commit-hooks` | Husky 和 lint-staged 只接了一半 |
51
+ | `workspace-package-coverage` | package.json 没被 workspace patterns 覆盖 |
52
+
53
+ ## 第三步:保守同步标准资产
54
+
55
+ ```bash
56
+ pnpm exec repo upgrade --no-overwrite
57
+ pnpm exec repo doctor --markdown --redact --out reports/doctor-after.md
58
+ ```
59
+
60
+ `--no-overwrite` 适合第一次接入:它同步缺失资产,但保留已有 drifted 文件。你可以在 PR diff 里逐项看哪些配置要进一步迁移。
61
+
62
+ ## 第四步:预览校验计划
63
+
64
+ ```bash
65
+ pnpm exec repo check --dry-run
66
+ pnpm exec repo check --json --out reports/check-plan.json
67
+ pnpm exec repo check --markdown --redact --out reports/check-plan.md
68
+ ```
69
+
70
+ 先看 plan,再决定要不要接入 hook 或 CI。
71
+
72
+ ## 第五步:接入根脚本
73
+
74
+ 如果 `setup` 已补齐根脚本,团队日常文档就可以改成:
75
+
76
+ ```bash
77
+ pnpm doctor
78
+ pnpm new
79
+ pnpm check
80
+ ```
81
+
82
+ CI 和自动化脚本仍建议写完整 CLI:
83
+
84
+ ```bash
85
+ pnpm exec repo doctor --strict
86
+ pnpm exec repo check --full
87
+ ```
88
+
89
+ ## 第六步:处理遗留配置
90
+
91
+ ### 配置文件冲突
92
+
93
+ 只保留:
94
+
95
+ ```txt
96
+ repoctl.config.ts
97
+ ```
98
+
99
+ `monorepo.config.ts` 只是兼容旧项目。
100
+
101
+ ### 本地 tooling loader
102
+
103
+ 如果 `doctor` 提示 tooling 配置引用了本地源码 loader,使用:
104
+
105
+ ```bash
106
+ pnpm exec repo upgrade --yes
107
+ ```
108
+
109
+ 这个命令会迁移到 `repoctl/tooling` 入口。
110
+
111
+ ### workspace patterns 不覆盖包
112
+
113
+ 运行:
114
+
115
+ ```bash
116
+ pnpm exec repo setup --yes
117
+ ```
118
+
119
+ 或手动扩展 `pnpm-workspace.yaml`。
120
+
121
+ ## 推荐 PR 结构
122
+
123
+ 存量仓库接入建议拆成小 PR:
124
+
125
+ 1. 安装 `repoctl`,补 `setup/doctor/new/check` 根脚本。
126
+ 2. 提交 `doctor-before` 和 `doctor-after` 报告。
127
+ 3. 同步或迁移 tooling 配置。
128
+ 4. 接入 hook 和 CI。
129
+ 5. 用 `repo new --dry-run` 验证模板创建路径。
130
+
131
+ ## 下一步
132
+
133
+ - [工作流与 CI](./workflows.md)
134
+ - [排障与报告](./troubleshooting.md)
135
+ - [配置文件](./config.md)
@@ -0,0 +1,71 @@
1
+ # 命令别名
2
+
3
+ repoctl 保留了一组短别名,方便熟悉后在终端里少打字。团队文档仍建议优先写完整命令,减少新人理解成本。
4
+
5
+ ## 包入口别名
6
+
7
+ `repoctl` 包提供多个 bin:
8
+
9
+ ```bash
10
+ repo
11
+ repoctl
12
+ monorepo
13
+ rc
14
+ mo
15
+ ```
16
+
17
+ 文档统一推荐 `repo`。
18
+
19
+ 兼容入口仍然可用:
20
+
21
+ ```bash
22
+ repoctl doctor
23
+ monorepo doctor
24
+ rc doctor
25
+ mo doctor
26
+ ```
27
+
28
+ ## 顶层命令别名
29
+
30
+ | 推荐写法 | 兼容或短写 | 说明 |
31
+ | ---------------- | ----------- | ---------------- |
32
+ | `repo setup` | `repo init` | 初始化仓库默认值 |
33
+ | `repo upgrade` | `repo sync` | 同步模板标准资产 |
34
+ | `repo templates` | `repo tpl` | 查看或检查模板 |
35
+
36
+ ## 分组命令别名
37
+
38
+ | 完整命令 | 短写 |
39
+ | ------------------------------ | --------------- |
40
+ | `repo workspace` | `repo ws` |
41
+ | `repo workspace upgrade` | `repo ws up` |
42
+ | `repo workspace list` | `repo ws ls` |
43
+ | `repo workspace clean` | `repo ws rm` |
44
+ | `repo tooling` | `repo tg` |
45
+ | `repo tooling init` | `repo tg i` |
46
+ | `repo package` | `repo pkg` |
47
+ | `repo package create` | `repo pkg new` |
48
+ | `repo verify` | `repo v` |
49
+ | `repo verify pre-push` | `repo v push` |
50
+ | `repo verify pre-commit` | `repo v commit` |
51
+ | `repo verify commit-msg` | `repo v msg` |
52
+ | `repo verify staged-typecheck` | `repo v tc` |
53
+ | `repo env` | `repo e` |
54
+ | `repo env info` | `repo e i` |
55
+ | `repo env snapshot` | `repo e s` |
56
+ | `repo env paths` | `repo e p` |
57
+ | `repo env support` | `repo e b` |
58
+ | `repo env mirror` | `repo e m` |
59
+ | `repo config` | `repo cfg` |
60
+ | `repo config inspect` | `repo cfg i` |
61
+ | `repo skills` | `repo sk` |
62
+ | `repo skills sync` | `repo sk s` |
63
+ | `repo ai prompt` | `repo ai p` |
64
+ | `repo ai prompt create` | `repo ai p new` |
65
+
66
+ ## 推荐使用原则
67
+
68
+ - 新手教程写完整命令,例如 `pnpm exec repo doctor`。
69
+ - 团队 README 写根脚本,例如 `pnpm doctor`。
70
+ - 维护者脚本可以写短别名,但要在注释或文档里说明用途。
71
+ - CI 里优先写完整命令,方便日志搜索。
@@ -0,0 +1,154 @@
1
+ # 命令速查
2
+
3
+ 这一页只保留 repoctl 高频、实用、容易记错的命令。
4
+
5
+ ## 最推荐入口
6
+
7
+ ```bash
8
+ pnpm exec repo setup
9
+ pnpm exec repo doctor
10
+ pnpm exec repo templates
11
+ pnpm exec repo new
12
+ pnpm exec repo check
13
+ ```
14
+
15
+ 模板生成仓库里的短脚本:
16
+
17
+ ```bash
18
+ pnpm setup
19
+ pnpm doctor
20
+ pnpm new
21
+ pnpm check
22
+ ```
23
+
24
+ ## `repo setup`
25
+
26
+ ```bash
27
+ repo setup
28
+ repo setup --yes
29
+ repo setup --preset minimal
30
+ repo setup --preset standard --force
31
+ repo setup --overwrite
32
+ ```
33
+
34
+ 用途:
35
+
36
+ - 初始化当前 workspace 的推荐默认值。
37
+ - 默认不覆盖已有 README、package.json、pnpm-workspace.yaml 和 tooling 配置。
38
+ - 追加缺失的 `apps/*`、`packages/*`、`examples/*` workspace patterns。
39
+ - `--yes` 用于 CI 或非 TTY 环境。
40
+ - 需要重写受管理文件时显式传 `--force` 或 `--overwrite`。
41
+
42
+ ## `repo doctor`
43
+
44
+ ```bash
45
+ repo doctor
46
+ repo doctor --strict
47
+ repo doctor --json
48
+ repo doctor --json --out reports/doctor.json
49
+ repo doctor --markdown --redact --out reports/doctor.md
50
+ ```
51
+
52
+ 用途:
53
+
54
+ - 诊断当前目录是不是可直接开始使用的 monorepo 根目录。
55
+ - 检查 Node 版本、workspace 文件、CLI 依赖、根脚本、配置冲突和提交链路。
56
+ - `--strict` 会把 warning 也视为失败,适合 CI 门禁。
57
+ - `--json` 和 `--markdown` 适合自动化、PR、issue 和外部协作。
58
+ - `--redact` 会脱敏 workspace、cwd、home 等绝对路径。
59
+
60
+ ## `repo templates`
61
+
62
+ ```bash
63
+ repo templates
64
+ repo templates tsdown
65
+ repo templates --category library
66
+ repo templates --check
67
+ repo templates --json
68
+ repo templates --markdown --out docs/templates.md
69
+ ```
70
+
71
+ 用途:
72
+
73
+ - 查看内置模板 key、分类、默认生成目录和用途。
74
+ - 检查模板元数据和源目录健康状态。
75
+ - 给脚本读取 JSON,或生成 Markdown 文档片段。
76
+
77
+ ## `repo new`
78
+
79
+ ```bash
80
+ repo new
81
+ repo new sdk --template tsdown
82
+ repo new docs --template vitepress
83
+ repo new docs --template vitepress --dry-run
84
+ repo new docs --template vitepress --json --out plans/docs.json
85
+ ```
86
+
87
+ 用途:
88
+
89
+ - 交互式或直接创建新的 package、app、service、docs 或 CLI。
90
+ - `--dry-run` 只预览模板、目标目录、package name 和输出文件。
91
+ - `--json` 输出结构化创建计划,隐含 `--dry-run`。
92
+ - 显式传入的 `--template` 会先校验,拼错时会失败并提示相近 key。
93
+
94
+ ## `repo check`
95
+
96
+ ```bash
97
+ repo check
98
+ repo check --staged
99
+ repo check --full
100
+ repo check --edit-file .git/COMMIT_EDITMSG
101
+ repo check --dry-run
102
+ repo check --json --out reports/check-plan.json
103
+ repo check --markdown --redact --out reports/check-plan.md
104
+ ```
105
+
106
+ 用途:
107
+
108
+ - 运行推荐的本地校验入口。
109
+ - `--staged` 偏 pre-commit。
110
+ - `--full` 偏 pre-push。
111
+ - `--edit-file` 用于 commit message 校验。
112
+ - `--dry-run` 只预览将要执行的校验。
113
+
114
+ ## `repo upgrade`
115
+
116
+ ```bash
117
+ repo upgrade
118
+ repo upgrade --yes
119
+ repo upgrade --overwrite
120
+ repo upgrade --no-overwrite
121
+ repo upgrade --core
122
+ repo upgrade -i
123
+ repo upgrade -s
124
+ ```
125
+
126
+ 用途:
127
+
128
+ - 同步仓库标准资产与脚本。
129
+ - `--core` 只同步核心配置,跳过 GitHub 相关资产。
130
+ - `-i` 交互式选择。
131
+ - `--no-overwrite` / `-s` 保留已有 drifted 文件。
132
+ - `--yes` / `--overwrite` 非交互覆盖 drifted 标准资产。
133
+
134
+ ## 分组命令
135
+
136
+ ```bash
137
+ repo ws ls
138
+ repo ws ls --json --out reports/workspaces.json
139
+ repo ws up
140
+ repo tg init --all
141
+ repo verify pre-commit
142
+ repo verify pre-push
143
+ repo env support --markdown --redact --out reports/support.md
144
+ repo config inspect
145
+ repo skills sync --codex
146
+ ```
147
+
148
+ 分组命令适合维护者和自动化脚本。日常开发优先使用顶层命令。
149
+
150
+ ## 继续阅读
151
+
152
+ - [工作流与 CI](./workflows.md)
153
+ - [排障与报告](./troubleshooting.md)
154
+ - [命令别名](./aliases.md)