|
13 | 13 |
|
14 | 14 | 两种模式: |
15 | 15 |
|
16 | | -| 模式 | 用途 | 触发方式 | |
17 | | -| ------- | ----------------------------- | ------------------------------------------------- | |
| 16 | +| 模式 | 用途 | 触发方式 | |
| 17 | +| ------- | ------------------------------ | -------------------------------------------------- | |
18 | 18 | | channel | 发 channel 版本到指定 dist-tag | 选 mode=channel,填 dist-tag 名称(如 mcp/plugin) | |
19 | 19 | | stable | 正式发版到 latest | 选 mode=stable,需 production environment 审批 | |
20 | 20 |
|
|
36 | 36 |
|
37 | 37 | 两种模式都会先跑 `check.mjs`,覆盖以下检查: |
38 | 38 |
|
39 | | -| 检查项 | 说明 | |
40 | | -| ---------------------------- | ------------------------------------------- | |
41 | | -| `pnpm install --frozen-lockfile` | lockfile 一致性 | |
42 | | -| README 同步 | `packages/cli/README.md` 与根 README 一致 | |
43 | | -| 版本号一致 | cli 与 core 的 version 字段相同 | |
44 | | -| `workspace:*` 替换 | cli 对 core 的依赖解析为真实版本号 | |
45 | | -| 构建 core + cli | `pnpm build` | |
46 | | -| pnpm pack | 打 tarball | |
47 | | -| publint | 包元数据校验 | |
48 | | -| gitleaks | 敏感信息扫描 | |
| 39 | +| 检查项 | 说明 | |
| 40 | +| -------------------------------- | ----------------------------------------- | |
| 41 | +| `pnpm install --frozen-lockfile` | lockfile 一致性 | |
| 42 | +| README 同步 | `packages/cli/README.md` 与根 README 一致 | |
| 43 | +| 版本号一致 | cli 与 core 的 version 字段相同 | |
| 44 | +| `workspace:*` 替换 | cli 对 core 的依赖解析为真实版本号 | |
| 45 | +| 构建 core + cli | `pnpm build` | |
| 46 | +| pnpm pack | 打 tarball | |
| 47 | +| publint | 包元数据校验 | |
| 48 | +| gitleaks | 敏感信息扫描 | |
49 | 49 |
|
50 | 50 | 本地可以 dry-run 验证: |
51 | 51 |
|
@@ -81,11 +81,11 @@ node tools/release/publish-channel.mjs --channel test --dry-run |
81 | 81 |
|
82 | 82 | ## 常见漏点(基于历史踩坑) |
83 | 83 |
|
84 | | -| 漏点 | 后果 | |
85 | | -| ------------------------------------------------ | ---------------------------------------------------- | |
86 | | -| cli 升版号但 core 没升 | check.mjs 会拦下 | |
87 | | -| `1.0.0` 当 beta 直接发 | 占了 `latest` tag,所有用户被强升,撤回成本极高 | |
88 | | -| README 写的 bin 名实际 `package.json.bin` 没注册 | 用户复制命令报 `command not found` | |
89 | | -| Node 徽章 `>=18`、engines `>=22.12` 不一致 | 用户在 Node 18 上 `npm i` 被 engine 警告或直接失败 | |
90 | | -| npm Trusted Publisher 的 workflow filename 改了没同步 | OIDC 匹配不上,publish 报 404 | |
91 | | -| CI 用 Node 22(npm 10)跑 publish | npm 10 不支持 OIDC token 交换,publish 报 404 | |
| 84 | +| 漏点 | 后果 | |
| 85 | +| ----------------------------------------------------- | -------------------------------------------------- | |
| 86 | +| cli 升版号但 core 没升 | check.mjs 会拦下 | |
| 87 | +| `1.0.0` 当 beta 直接发 | 占了 `latest` tag,所有用户被强升,撤回成本极高 | |
| 88 | +| README 写的 bin 名实际 `package.json.bin` 没注册 | 用户复制命令报 `command not found` | |
| 89 | +| Node 徽章 `>=18`、engines `>=22.12` 不一致 | 用户在 Node 18 上 `npm i` 被 engine 警告或直接失败 | |
| 90 | +| npm Trusted Publisher 的 workflow filename 改了没同步 | OIDC 匹配不上,publish 报 404 | |
| 91 | +| CI 用 Node 22(npm 10)跑 publish | npm 10 不支持 OIDC token 交换,publish 报 404 | |
0 commit comments