Orval OpenAPI 客户端重新生成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/orval-openapi-client-regeneration-skill-typed-sdks,让 AI 助手在后端 OpenAPI 规范变更后重新生成类型化客户端。
技能介绍
要解决什么问题
当后端调整 OpenAPI 规范后,前端的类型化客户端常常陷入两难:要么手工修补生成产物,要么放任类型定义与真实响应结构逐渐漂移。手工编辑生成代码注定在下一次重新生成时被覆盖,而类型不一致会让 fetch 客户端把问题拖到运行期才暴露——字段缺失、响应形状错误、编译期毫无征兆。
核心能力
- 从规范重新生成类型化 SDK:以 OpenAPI spec 为唯一事实来源,让请求参数与响应体都具备完整类型约束
- hooks 同步更新:重新生成时一并刷新生成的 hooks,无需手工改动输出目录
- 与后端变更对齐:规范更新后重跑流程,客户端即可跟上 schema 变化
关键步骤
- 彻底清理:执行
bun run nuke:all,移除构建产物、node_modules与缓存文件,确保从干净状态开始,避免旧类型定义干扰 - 重新构建:执行
bun run build,编译 TypeScript,让改动真正落到工作区 - 类型检查:执行
bun run typecheck,跨所有包执行 TypeScript 校验,把类型错误挡在提交之前
适用边界
这是一个范围狭窄的 Orval 工作流技能,不是 Orval 项目的通用介绍。它假设项目已经采用 Orval 作为客户端生成方案,并依赖 Bun 作为包管理器与脚本运行器。对不使用 OpenAPI 或未引入 Orval 的项目,这套流程无从谈起;本技能也不负责规范编写、mock 数据策略等周边工作,只聚焦重新生成与校验这一环。
使用场景
- 后端更新 OpenAPI 规范并调整响应字段后,需要按新 spec 重新生成类型化客户端,并确认现有 fetch 调用仍类型安全。
- 发现生成目录里有人手工改过 hooks 或类型定义时,需要重新生成并审查输出是否覆盖手工修改。
- 团队切换到 Bun 管理脚本后,需要统一用 nuke:all 清理缓存、build 编译、typecheck 校验多包项目。
- 准备提交前端改动前,需要跨所有包跑一遍 TypeScript typecheck,排除规范变更引入的类型错误。
适合人员
- Orval 项目负责人:需要在 spec 变更后可靠重新生成客户端,并保持 hooks 与类型一致。
- TypeScript 前端工程师:希望 fetch 调用拥有准确类型,避免手工改生成产物。
- 维护 monorepo 的构建工程师:需要用 Bun 脚本统一清理、编译和跨包类型检查。
- 与后端协作的 API 工程师:需要在 OpenAPI 更新后快速验证客户端是否对齐 schema。