第 11 章:发布上线 — 从开发分支到生产环境
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
你将学到什么
- superpowers 的
/finishing-a-development-branch完成开发分支 - gstack 的
/ship发布流程 - gstack 的
/document-release生成发布文档 /freeze和/unfreeze控制发布节奏
11.1 发布前的检查清单
在发布之前,确保以下事项都完成了:
flowchart TB
CHECK["发布检查清单"]
CHECK --> C1["✅ 所有测试通过"]
CHECK --> C2["✅ code review 无 Critical 问题"]
CHECK --> C3["✅ 设计审查通过"]
CHECK --> C4["✅ CLAUDE.md 已更新"]
CHECK --> C5["✅ 无 console.log 调试代码"]
CHECK --> C6["✅ localStorage 容量检测正常"]
C1 & C2 & C3 & C4 & C5 & C6 --> READY["准备发布 🚀"]
style CHECK fill:#fef3c7,stroke:#d97706
style READY fill:#dcfce7,stroke:#16a34a快速验证
# 跑全量测试
npm test
# 构建生产版本
npm run build
# 本地预览生产版本
npm run preview
如果三步都通过,可以进入发布流程。
11.2 /finishing-a-development-branch — superpowers 发布
命令语法
/finishing-a-development-branch
这个命令做以下事情:
- 检查分支状态 — 确认所有改动都已 commit
- 运行测试 — 最终确认测试全部通过
- 合并准备 — 生成 PR 描述或合并说明
- 清理工作 — 删除临时分支、worktree 等
实战:完成 NoteFlow 开发分支
/finishing-a-development-branch
你会看到:
分支状态检查:
- 当前分支:
feature/noteflow-p1- 12 commits ahead of main
- 工作区干净(无未提交改动)
测试结果:
- 24 tests passed, 0 failed
- 覆盖率:87%
PR 描述已生成:
## NoteFlow P1: 搜索与分类 ### 新功能 - 实时搜索(按标题和内容) - 搜索结果高亮 - 分类标签(工作、生活、学习) - 按标签筛选笔记 ### 技术改动 - 新增 `useSearch` Hook - 新增 `TagSelector` 组件 - 数据迁移:旧笔记补充 tags 字段 ### 测试 - 新增 12 个测试用例 - 覆盖率从 72% 提升到 87%
11.3 /ship — gstack 发布流程
命令语法
/ship
gstack 的 /ship 更偏重发布协调——确保发布过程有序进行。
实战:发布 NoteFlow
/ship
你会看到:
发布准备:
- 版本号:1.1.0(新增搜索和分类功能)
- 变更日志:基于 git log 自动生成
- 发布检查:
- ✅ 所有测试通过
- ✅ 无安全漏洞
- ✅ 构建成功
- ✅ 文档已更新
11.4 /document-release — 生成发布文档
命令语法
/document-release
自动生成一份面向用户的发布说明。
实战:生成 NoteFlow 发布说明
/document-release
产出:
# NoteFlow v1.1.0 发布说明
## 新功能
### 搜索
现在你可以快速搜索笔记了!在搜索栏输入关键词,
实时显示匹配结果,搜索内容会高亮显示。
### 分类标签
给笔记打标签,按标签筛选。预设了"工作"、"生活"、"学习"
三个标签,你也可以自定义。
## 改进
- 笔记列表滚动更流畅
- 编辑大笔记时性能优化
- 首次使用引导体验改善
## 修复
- 修复快速连续创建笔记时可能丢失的问题
- 修复搜索特殊字符时崩溃的问题
11.5 /freeze 和 /unfreeze — 控制发布节奏
/freeze — 冻结代码
在发布准备期间,防止新的改动进入:
/freeze
冻结后:
- 不允许新的功能合并
- 只允许 bug 修复
- 确保发布版本稳定
/unfreeze — 解除冻结
发布完成后解除冻结:
/unfreeze
完整发布流程
flowchart TB
A["开发完成"] --> B["finishing-a-development-branch
(superpowers)"]
B --> C["/freeze
冻结代码"]
C --> D["/ship
发布流程"]
D --> E["/document-release
生成发布文档"]
E --> F["部署上线"]
F --> G["/unfreeze
解除冻结"]
G --> H["开始下一个迭代"]
style C fill:#dbeafe,stroke:#2563eb
style D fill:#dcfce7,stroke:#16a34a
style G fill:#fef3c7,stroke:#d9770611.6 纯前端项目的部署
NoteFlow 是纯前端应用,部署比较简单:
部署到 Vercel
# 安装 Vercel CLI
npm i -g vercel
# 部署
vercel
部署到 GitHub Pages
# 安装 gh-pages
npm install --save-dev gh-pages
# 在 package.json 中添加
# "deploy": "gh-pages -d dist"
# 构建 + 部署
npm run build
npm run deploy
动手做
- 运行
/finishing-a-development-branch完成开发分支 - 运行
/freeze冻结代码 - 运行
/ship进入发布流程 - 运行
/document-release生成发布文档 - 部署到你选择的平台
- 运行
/unfreeze解除冻结
本章小结
| 命令 | 来源 | 做什么 |
|---|---|---|
/finishing-a-development-branch |
superpowers | 完成分支、生成 PR |
/ship |
gstack | 发布协调 |
/document-release |
gstack | 生成用户发布说明 |
/freeze |
gstack | 冻结代码,防止新改动 |
/unfreeze |
gstack | 解除冻结,开始下一轮 |
核心原则: 发布不是一键完成的事。冻结 → 发布 → 文档 → 部署 → 解冻,每步都有意义。