@icebreakers/monorepo-templates 1.0.3 → 1.0.5
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.
- package/assets/package.json +6 -16
- package/package.json +1 -1
- package/templates/cli/package.json +1 -1
- package/templates/client/package.json +3 -3
- package/templates/client/vite.config.ts +27 -21
- package/templates/client/worker-configuration.d.ts +8 -17
- package/templates/server/package.json +2 -2
- package/templates/server/worker-configuration.d.ts +8 -17
- package/templates/vitepress/.vitepress/config.ts +49 -2
- package/templates/vitepress/ai/index.md +33 -0
- package/templates/vitepress/ai/llms-txt.md +42 -0
- package/templates/vitepress/en/index.md +11 -5
- package/templates/vitepress/en/knowledge/monorepo.md +1 -1
- package/templates/vitepress/en/repoctl/adopt-existing.md +13 -11
- package/templates/vitepress/en/repoctl/aliases.md +3 -4
- package/templates/vitepress/en/repoctl/commands.md +12 -12
- package/templates/vitepress/en/repoctl/config.md +1 -1
- package/templates/vitepress/en/repoctl/getting-started.md +19 -19
- package/templates/vitepress/en/repoctl/index.md +10 -10
- package/templates/vitepress/en/repoctl/scenarios.md +6 -6
- package/templates/vitepress/en/repoctl/troubleshooting.md +2 -2
- package/templates/vitepress/en/repoctl/workflows.md +12 -12
- package/templates/vitepress/getting-started.md +3 -3
- package/templates/vitepress/index.md +15 -6
- package/templates/vitepress/knowledge/index.md +50 -0
- package/templates/vitepress/monorepo/commands.md +5 -5
- package/templates/vitepress/monorepo/index.md +14 -14
- package/templates/vitepress/monorepo/manage.md +21 -21
- package/templates/vitepress/monorepo/troubleshooting.md +1 -1
- package/templates/vitepress/package.json +3 -2
- package/templates/vitepress/repoctl/adopt-existing.md +22 -22
- package/templates/vitepress/repoctl/aliases.md +4 -5
- package/templates/vitepress/repoctl/checks.md +86 -0
- package/templates/vitepress/repoctl/commands.md +28 -14
- package/templates/vitepress/repoctl/config.md +10 -1
- package/templates/vitepress/repoctl/doctor.md +86 -0
- package/templates/vitepress/repoctl/execution-model.md +81 -0
- package/templates/vitepress/repoctl/getting-started.md +16 -16
- package/templates/vitepress/repoctl/index.md +40 -12
- package/templates/vitepress/repoctl/reports.md +94 -0
- package/templates/vitepress/repoctl/scenarios.md +6 -6
- package/templates/vitepress/repoctl/template-assets.md +116 -0
- package/templates/vitepress/repoctl/templates.md +3 -0
- package/templates/vitepress/repoctl/troubleshooting.md +15 -3
- package/templates/vitepress/repoctl/workflows.md +26 -13
- package/templates/vitepress/tools/index.md +38 -0
- package/templates/vitepress/tools/llms-txt.md +9 -0
- package/templates/vitepress/why/examples/2.npm-basic-package/README.md +1 -1
- package/templates/vitepress/why/examples/3.npm-basic-package/README.md +1 -1
- package/templates/vitepress/wrangler.jsonc +5 -0
- package/templates/vue-lib/package.json +1 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 说明 repoctl 的 JSON、Markdown、out、redact、env info、env snapshot 和 env support 报告能力。
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 报告与自动化输出
|
|
6
|
+
|
|
7
|
+
repoctl 的报告能力用于把本地上下文变成可保存、可脱敏、可给脚本读取的文件。它适合 CI artifact、issue 模板、编辑器集成和跨机器排障。
|
|
8
|
+
|
|
9
|
+
## 1. 通用输出参数
|
|
10
|
+
|
|
11
|
+
| 参数 | 支持命令示例 | 作用 |
|
|
12
|
+
| -------------- | --------------------------------------- | ------------------------------ |
|
|
13
|
+
| `--json` | `doctor`、`check`、`templates`、`env` | 输出结构化数据 |
|
|
14
|
+
| `--markdown` | `doctor`、`check`、`templates`、`env` | 输出便于阅读和粘贴的报告 |
|
|
15
|
+
| `--out <file>` | 多数报告命令 | 把输出写入文件 |
|
|
16
|
+
| `--redact` | `doctor`、`check`、`env` | 脱敏本机路径 |
|
|
17
|
+
| `--strict` | `doctor`、`env snapshot`、`env support` | 有 fail 或 warn 时返回失败状态 |
|
|
18
|
+
|
|
19
|
+
## 2. env 子命令
|
|
20
|
+
|
|
21
|
+
| 命令 | 内容 | 适合用途 |
|
|
22
|
+
| ------------------- | -------------------------------------------- | ---------------- |
|
|
23
|
+
| `repo env info` | cwd、workspace、Node、pnpm、包数量等环境摘要 | 快速确认环境 |
|
|
24
|
+
| `repo env paths` | 关键路径和建议报告路径 | 统一报告落盘位置 |
|
|
25
|
+
| `repo env snapshot` | 环境、doctor 和 check plan | CI 快照 |
|
|
26
|
+
| `repo env support` | 环境、路径、配置、doctor 和 check plan | 完整排障包 |
|
|
27
|
+
| `repo env mirror` | VS Code binary mirror 设置 | 国内网络环境优化 |
|
|
28
|
+
|
|
29
|
+
常用组合:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
repo env info --json --out reports/env.json
|
|
33
|
+
repo env snapshot --markdown --redact --out reports/snapshot.md
|
|
34
|
+
repo env support --markdown --redact --out reports/support.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 3. CI artifact 示例
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
repo doctor --json --out reports/doctor.json
|
|
41
|
+
repo check --full --json --out reports/check-plan.json
|
|
42
|
+
repo env support --markdown --redact --out reports/support.md
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
建议把 `reports/` 上传为 artifact。这样 CI 失败时,不需要重新询问维护者使用了什么 Node、pnpm、workspace 根目录和校验计划。
|
|
46
|
+
|
|
47
|
+
## 4. issue 排障模板
|
|
48
|
+
|
|
49
|
+
当你需要把问题交给同事或维护者时,可以先生成 Markdown:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
repo env support --markdown --redact --out reports/support.md
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
然后在 issue 里附上:
|
|
56
|
+
|
|
57
|
+
| 内容 | 来源 |
|
|
58
|
+
| ------------- | ----------------- |
|
|
59
|
+
| 环境摘要 | `env info` |
|
|
60
|
+
| 配置命中情况 | `config inspect` |
|
|
61
|
+
| doctor 失败项 | `doctor` |
|
|
62
|
+
| check 计划 | `check --dry-run` |
|
|
63
|
+
| 推荐报告路径 | `env paths` |
|
|
64
|
+
|
|
65
|
+
## 5. 什么时候使用 JSON
|
|
66
|
+
|
|
67
|
+
JSON 适合机器判断,不适合人工长时间阅读:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
repo doctor --json --out reports/doctor.json
|
|
71
|
+
repo templates --check --json --out reports/templates.json
|
|
72
|
+
repo new docs --template vitepress --json --out plans/docs.json
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
常见消费方式:
|
|
76
|
+
|
|
77
|
+
| 目标 | 使用方式 |
|
|
78
|
+
| ------------------- | ------------------------------------ |
|
|
79
|
+
| CI 判断是否有阻塞项 | 读取 `doctor.summary.fail` |
|
|
80
|
+
| 编辑器展示模板列表 | 读取 `repo templates --json` |
|
|
81
|
+
| 预览创建结果 | 读取 `repo new --json` |
|
|
82
|
+
| 审计模板健康状态 | 读取 `repo templates --check --json` |
|
|
83
|
+
|
|
84
|
+
## 6. 什么时候使用 Markdown
|
|
85
|
+
|
|
86
|
+
Markdown 适合给人看,尤其适合 PR、issue 和协作文档:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
repo doctor --markdown --redact --out reports/doctor.md
|
|
90
|
+
repo check --markdown --redact --out reports/check-plan.md
|
|
91
|
+
repo templates --markdown --out docs/templates.md
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
如果报告要离开本机,默认加 `--redact`。
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
pnpm install
|
|
9
|
-
pnpm doctor
|
|
9
|
+
pnpm run repo:doctor
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
如果 `
|
|
12
|
+
如果 `repo:*` 根脚本还不存在:
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
pnpm add -D repoctl
|
|
16
|
-
pnpm exec repo
|
|
16
|
+
pnpm exec repo init --yes
|
|
17
17
|
pnpm exec repo doctor
|
|
18
18
|
```
|
|
19
19
|
|
|
@@ -23,7 +23,7 @@ pnpm exec repo doctor
|
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
pnpm add -D repoctl
|
|
26
|
-
pnpm exec repo
|
|
26
|
+
pnpm exec repo init --yes
|
|
27
27
|
pnpm exec repo doctor --markdown --redact --out reports/doctor-before.md
|
|
28
28
|
pnpm exec repo upgrade --no-overwrite
|
|
29
29
|
pnpm exec repo doctor --markdown --redact --out reports/doctor-after.md
|
|
@@ -42,7 +42,7 @@ pnpm exec repo new docs --template vitepress --dry-run
|
|
|
42
42
|
如果只是日常开发,根脚本也可以:
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
pnpm new sdk --template tsdown
|
|
45
|
+
pnpm run repo:new -- sdk --template tsdown
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
继续看:[模板与创建](./templates.md)。
|
|
@@ -50,7 +50,7 @@ pnpm new sdk --template tsdown
|
|
|
50
50
|
## 我要提交前自查
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
pnpm check
|
|
53
|
+
pnpm run repo:check
|
|
54
54
|
pnpm exec repo check --dry-run
|
|
55
55
|
pnpm exec repo check --full
|
|
56
56
|
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 说明 repoctl 内置模板、templateMap、模板健康检查、创建计划和模板资产维护方式。
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# repoctl 模板资产治理
|
|
6
|
+
|
|
7
|
+
repoctl 的模板能力不只是复制目录。它会把模板元数据、默认生成目录、创建计划、健康检查和配置覆盖串起来。
|
|
8
|
+
|
|
9
|
+
## 1. 内置模板映射
|
|
10
|
+
|
|
11
|
+
| key | source | 默认 target | 类型 |
|
|
12
|
+
| ------------- | --------------------- | ------------------ | --------------------- |
|
|
13
|
+
| `tsdown` | `templates/tsdown` | `packages/tsdown` | TypeScript library |
|
|
14
|
+
| `vue-lib` | `templates/vue-lib` | `packages/vue-lib` | Vue component library |
|
|
15
|
+
| `hono-server` | `templates/server` | `apps/server` | Hono service |
|
|
16
|
+
| `vue-hono` | `templates/client` | `apps/client` | Vue + Hono app |
|
|
17
|
+
| `vitepress` | `templates/vitepress` | `apps/website` | docs site |
|
|
18
|
+
| `cli` | `templates/cli` | `apps/cli` | command line tool |
|
|
19
|
+
|
|
20
|
+
查看实际可用模板:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
repo templates
|
|
24
|
+
repo templates --json
|
|
25
|
+
repo templates --markdown --out docs/templates.md
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 2. 创建计划
|
|
29
|
+
|
|
30
|
+
`repo new` 会先解析创建计划,再决定是否写入文件。计划包含:
|
|
31
|
+
|
|
32
|
+
| 字段 | 含义 |
|
|
33
|
+
| ------------------- | ------------------------------------------------ |
|
|
34
|
+
| `requestedTemplate` | 用户请求的模板 key |
|
|
35
|
+
| `template` | 实际使用的模板 key |
|
|
36
|
+
| `sourceDir` | 模板源目录 |
|
|
37
|
+
| `targetDir` | 输出目录 |
|
|
38
|
+
| `targetExists` | 目标目录是否已存在 |
|
|
39
|
+
| `packageName` | 写入 package.json 的包名 |
|
|
40
|
+
| `renameJson` | 是否把 `package.json` 输出为 `package.mock.json` |
|
|
41
|
+
|
|
42
|
+
预览创建:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
repo new docs --template vitepress --dry-run
|
|
46
|
+
repo new docs --template vitepress --json --out plans/docs.json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`--json` 和 `--out` 都隐含 `--dry-run`,不会写入文件。
|
|
50
|
+
|
|
51
|
+
## 3. 模板选择和报错
|
|
52
|
+
|
|
53
|
+
显式传入 `--template` 时,repoctl 会先校验模板 key:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
repo new sdk --template tsdown
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
如果模板 key 拼错,命令会失败并提示相近 key。它不会静默回退到默认模板,这样 CI 和脚本不会生成错误类型的项目。
|
|
60
|
+
|
|
61
|
+
## 4. 健康检查
|
|
62
|
+
|
|
63
|
+
模板资产可以通过 `repo templates --check` 检查:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
repo templates --check
|
|
67
|
+
repo templates --check --json --out reports/templates.json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
检查内容包括:
|
|
71
|
+
|
|
72
|
+
| 检查 | 目的 |
|
|
73
|
+
| -------------- | ------------------------------------ |
|
|
74
|
+
| source 唯一性 | 避免多个模板 key 指向同一源目录 |
|
|
75
|
+
| target 唯一性 | 避免多个模板默认写到同一目标目录 |
|
|
76
|
+
| source 目录 | 确认模板目录存在 |
|
|
77
|
+
| package.json | 确认模板根目录包含包元数据 |
|
|
78
|
+
| metadata | 确认模板有 category 和 description |
|
|
79
|
+
| filtered files | 避免把临时、缓存或生成文件放入模板源 |
|
|
80
|
+
|
|
81
|
+
## 5. 自定义模板
|
|
82
|
+
|
|
83
|
+
可以在 `repoctl.config.ts` 里扩展模板映射:
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
import { defineMonorepoConfig } from 'repoctl'
|
|
87
|
+
|
|
88
|
+
export default defineMonorepoConfig({
|
|
89
|
+
commands: {
|
|
90
|
+
create: {
|
|
91
|
+
defaultTemplate: 'internal-service',
|
|
92
|
+
templateMap: {
|
|
93
|
+
'internal-service': {
|
|
94
|
+
source: 'templates/internal-service',
|
|
95
|
+
target: 'apps/internal-service',
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
})
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
自定义模板建议遵守同样的治理规则:唯一 source、唯一 target、模板根目录包含 `package.json`,并避免提交构建输出和缓存文件。
|
|
104
|
+
|
|
105
|
+
## 6. 维护流程
|
|
106
|
+
|
|
107
|
+
更新模板时建议按下面流程验证:
|
|
108
|
+
|
|
109
|
+
```txt
|
|
110
|
+
修改 templates/<name>
|
|
111
|
+
-> repo templates --check
|
|
112
|
+
-> repo new demo --template <name> --json --out plans/demo.json
|
|
113
|
+
-> 构建或测试生成后的 workspace
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
如果模板文件数量发生变化,维护模板快照的测试也需要同步更新。
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
repoctl 的模板由 `@icebreakers/monorepo-templates` 维护。CLI、脚手架和文档都复用同一份模板元数据。
|
|
4
4
|
|
|
5
|
+
更偏维护者视角的模板元数据、健康检查和自定义模板说明见:[模板资产治理](./template-assets.md)。
|
|
6
|
+
|
|
5
7
|
## 内置模板
|
|
6
8
|
|
|
7
9
|
| Key | Category | 默认目录 | 适合场景 |
|
|
@@ -154,3 +156,4 @@ repo templates --check --json
|
|
|
154
156
|
- [接入已有仓库](./adopt-existing.md)
|
|
155
157
|
- [工作流与 CI](./workflows.md)
|
|
156
158
|
- [配置文件](./config.md)
|
|
159
|
+
- [模板资产治理](./template-assets.md)
|
|
@@ -16,7 +16,7 @@ repo doctor --strict
|
|
|
16
16
|
- `pnpm-workspace.yaml` 是否存在。
|
|
17
17
|
- `repoctl` 是否作为 CLI 依赖安装。
|
|
18
18
|
- 根脚本是否齐全。
|
|
19
|
-
-
|
|
19
|
+
- 是否仍残留已废弃的 `monorepo.config.ts`。
|
|
20
20
|
- Husky 与 lint-staged 是否都接上。
|
|
21
21
|
|
|
22
22
|
## 保存诊断报告
|
|
@@ -49,6 +49,16 @@ repo env paths --markdown --redact --out reports/paths.md
|
|
|
49
49
|
|
|
50
50
|
这些命令适合排查 Node、pnpm、workspace、Git、路径和 CI 环境差异。
|
|
51
51
|
|
|
52
|
+
## 先判断问题类型
|
|
53
|
+
|
|
54
|
+
| 现象 | 优先命令 | 继续阅读 |
|
|
55
|
+
| ------------------------------ | ----------------------------------------- | ------------------------------------ |
|
|
56
|
+
| 不确定当前目录是不是仓库根目录 | `repo doctor` | [doctor 诊断](./doctor.md) |
|
|
57
|
+
| 不知道 `repo check` 会跑什么 | `repo check --dry-run` | [校验链路](./checks.md) |
|
|
58
|
+
| CI 失败但日志不完整 | `repo env support --markdown --redact` | [报告与自动化输出](./reports.md) |
|
|
59
|
+
| 模板创建结果不符合预期 | `repo new <name> --template <key> --json` | [模板资产治理](./template-assets.md) |
|
|
60
|
+
| 模板列表或元数据异常 | `repo templates --check` | [模板资产治理](./template-assets.md) |
|
|
61
|
+
|
|
52
62
|
## 常见问题
|
|
53
63
|
|
|
54
64
|
### 当前目录不是仓库根目录
|
|
@@ -67,7 +77,7 @@ repo doctor
|
|
|
67
77
|
repoctl.config.ts
|
|
68
78
|
```
|
|
69
79
|
|
|
70
|
-
`monorepo.config.ts`
|
|
80
|
+
`monorepo.config.ts` 已不再加载。旧项目需要改名为 `repoctl.config.ts`。
|
|
71
81
|
|
|
72
82
|
### `repo new` 提示模板不存在
|
|
73
83
|
|
|
@@ -84,7 +94,7 @@ repo templates
|
|
|
84
94
|
使用非交互参数:
|
|
85
95
|
|
|
86
96
|
```bash
|
|
87
|
-
repo
|
|
97
|
+
repo init --yes
|
|
88
98
|
repo upgrade --no-overwrite
|
|
89
99
|
repo check --json --out reports/check-plan.json
|
|
90
100
|
```
|
|
@@ -95,4 +105,6 @@ repo check --json --out reports/check-plan.json
|
|
|
95
105
|
|
|
96
106
|
- [工作流与 CI](./workflows.md)
|
|
97
107
|
- [命令速查](./commands.md)
|
|
108
|
+
- [doctor 诊断](./doctor.md)
|
|
109
|
+
- [报告与自动化输出](./reports.md)
|
|
98
110
|
- [命令别名](./aliases.md)
|
|
@@ -6,27 +6,27 @@ repoctl 的命令可以分成两类:给人用的日常入口,以及给 CI、
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
pnpm install
|
|
9
|
-
pnpm doctor
|
|
10
|
-
pnpm new sdk --template tsdown
|
|
11
|
-
pnpm check
|
|
9
|
+
pnpm run repo:doctor
|
|
10
|
+
pnpm run repo:new -- sdk --template tsdown
|
|
11
|
+
pnpm run repo:check
|
|
12
12
|
pnpm build
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
这条链路适合新成员第一次进入仓库:
|
|
16
16
|
|
|
17
|
-
| 步骤
|
|
18
|
-
|
|
|
19
|
-
| `pnpm install`
|
|
20
|
-
| `pnpm doctor`
|
|
21
|
-
| `pnpm new`
|
|
22
|
-
| `pnpm check`
|
|
23
|
-
| `pnpm build`
|
|
17
|
+
| 步骤 | 判断标准 |
|
|
18
|
+
| ---------------------- | ------------------------------------------------ |
|
|
19
|
+
| `pnpm install` | workspace 依赖和本地链接完整 |
|
|
20
|
+
| `pnpm run repo:doctor` | 仓库根目录、Node、脚本、配置和提交链路可用 |
|
|
21
|
+
| `pnpm run repo:new` | 新包由模板创建,目录和 package metadata 符合约定 |
|
|
22
|
+
| `pnpm run repo:check` | 提交前轻量校验可以复现 |
|
|
23
|
+
| `pnpm build` | 全仓构建链路没有明显断点 |
|
|
24
24
|
|
|
25
25
|
## 存量仓库接入
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
28
|
pnpm add -D repoctl
|
|
29
|
-
pnpm exec repo
|
|
29
|
+
pnpm exec repo init --yes
|
|
30
30
|
pnpm exec repo doctor --markdown --out reports/doctor.md
|
|
31
31
|
pnpm exec repo upgrade --no-overwrite
|
|
32
32
|
pnpm exec repo doctor
|
|
@@ -87,11 +87,23 @@ repo ws ls --json --out reports/workspaces.json
|
|
|
87
87
|
|
|
88
88
|
这些命令都不会要求人工选择,适合编辑器插件、脚本和 CI bot。
|
|
89
89
|
|
|
90
|
+
## 推荐流水线拆分
|
|
91
|
+
|
|
92
|
+
| 阶段 | 命令 | 失败后先看 |
|
|
93
|
+
| ---- | --------------------------------------------------------------- | ------------------------------------ |
|
|
94
|
+
| 安装 | `pnpm install --frozen-lockfile` | lockfile、Node、pnpm 版本 |
|
|
95
|
+
| 诊断 | `repo doctor --strict` | [doctor 诊断](./doctor.md) |
|
|
96
|
+
| 计划 | `repo check --full --json --out reports/check-plan.json` | [报告与自动化输出](./reports.md) |
|
|
97
|
+
| 执行 | `repo check --full` | 失败的 root script 或 workspace 任务 |
|
|
98
|
+
| 留证 | `repo env support --markdown --redact --out reports/support.md` | CI artifact |
|
|
99
|
+
|
|
100
|
+
早期项目可以把计划和执行合并。成熟项目建议保留 `reports/`,方便失败时复盘实际执行路径。
|
|
101
|
+
|
|
90
102
|
## 非交互参数选择
|
|
91
103
|
|
|
92
104
|
| 场景 | 推荐参数 |
|
|
93
105
|
| ------------------ | -------------------------------------------------- |
|
|
94
|
-
| 初始化时接受默认值 | `repo
|
|
106
|
+
| 初始化时接受默认值 | `repo init --yes` |
|
|
95
107
|
| 同步时保留已有改动 | `repo upgrade --no-overwrite` |
|
|
96
108
|
| 明确覆盖标准资产 | `repo upgrade --yes` 或 `repo upgrade --overwrite` |
|
|
97
109
|
| 只看计划不执行 | `--dry-run` |
|
|
@@ -101,5 +113,6 @@ repo ws ls --json --out reports/workspaces.json
|
|
|
101
113
|
## 下一步
|
|
102
114
|
|
|
103
115
|
- 查所有参数:[命令速查](./commands.md)
|
|
104
|
-
-
|
|
116
|
+
- 理解校验链路:[校验链路](./checks.md)
|
|
117
|
+
- 生成排障包:[报告与自动化输出](./reports.md)
|
|
105
118
|
- 看短命令:[命令别名](./aliases.md)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: repoctl 文档站的工具专题入口,汇总 pnpm、Turborepo、changeset、Husky、lint-staged 和 Renovate。
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 工具专题
|
|
6
|
+
|
|
7
|
+
工具专题只讲 repoctl 周边工具。repoctl 会把这些工具串成稳定工作流,但每个工具本身仍有独立的配置模型和维护边界。
|
|
8
|
+
|
|
9
|
+
## 1. 工具地图
|
|
10
|
+
|
|
11
|
+
| 工具 | 在 repoctl 工作流里的位置 | 详细页面 |
|
|
12
|
+
| ----------- | ----------------------------------------------- | ------------------------------- |
|
|
13
|
+
| pnpm | workspace、依赖安装、根脚本和包内脚本执行 | [pnpm](./pnpm.md) |
|
|
14
|
+
| Turborepo | build、lint、typecheck、test 等任务编排 | [turborepo](./turborepo.md) |
|
|
15
|
+
| changeset | 多包版本、变更记录和发布准备 | [changeset](./changeset.md) |
|
|
16
|
+
| Husky | Git hook 入口 | [husky](./husky.md) |
|
|
17
|
+
| lint-staged | staged 文件级 lint、stylelint 和 typecheck 路由 | [lint-staged](./lint-staged.md) |
|
|
18
|
+
| Renovate | 依赖更新和升级 PR 治理 | [renovate](./renovate.md) |
|
|
19
|
+
|
|
20
|
+
## 2. 和 repoctl 的关系
|
|
21
|
+
|
|
22
|
+
repoctl 不隐藏这些工具。它主要做三件事:
|
|
23
|
+
|
|
24
|
+
1. 生成推荐配置,减少每个仓库重复复制。
|
|
25
|
+
2. 提供 `doctor` 和 `check`,帮助你验证配置是否接上。
|
|
26
|
+
3. 提供 `upgrade`,在模板标准发生变化时同步资产。
|
|
27
|
+
|
|
28
|
+
因此排障时不要只看 repoctl 命令。比如 `repo check --full` 失败时,真正失败的任务可能是 `pnpm lint`、`pnpm typecheck`、某个 workspace 的 `build` 或 `test`。
|
|
29
|
+
|
|
30
|
+
## 3. 按目标阅读
|
|
31
|
+
|
|
32
|
+
| 目标 | 建议页面 |
|
|
33
|
+
| ------------------------- | ------------------------------------------------------ |
|
|
34
|
+
| 让 workspace 包能互相引用 | [pnpm](./pnpm.md) |
|
|
35
|
+
| 提升整仓任务速度 | [turborepo](./turborepo.md) |
|
|
36
|
+
| 建立规范发版链路 | [changeset](./changeset.md) |
|
|
37
|
+
| 提交前自动修复格式和 lint | [Husky](./husky.md) 与 [lint-staged](./lint-staged.md) |
|
|
38
|
+
| 降低依赖升级成本 | [Renovate](./renovate.md) |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
https://
|
|
1
|
+
https://repo.icebreaker.top/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
https://
|
|
1
|
+
https://repo.icebreaker.top/
|