SuperAPI AI 工具集

tinyship-feature

编程与开发

查看项目

更新于 10-16 02:05

技能介绍

TinyShip Feature 是面向 TinyShip 项目的一份功能开发操作指南,帮助开发者按照该 monorepo 的既有架构模式,规范地添加新功能。

用途 该技能用于指导在 TinyShip 单体仓库中新增功能,强调共享库优先、再处理配置、应用接线、国际化与权限的固定顺序,避免业务逻辑在多个应用之间重复实现。

主要能力与流程

  1. 范围确认(Step 0):先向用户澄清功能类型(仅 UI、仅 API 还是全栈)、功能做什么、是否需要鉴权与保护、是否消耗积分(AI 相关是否扣费)。
  2. 共享逻辑(Step 1):领域/业务逻辑应放在 libs/ 中,不在应用间复制。支付相关扩展 libs/payment/,鉴权相关扩展 libs/auth/,AI 相关扩展 libs/ai/,新领域则新建 libs/your-domain/ 并附带 AGENTS.md。可参考根目录 AGENTS.md 的完整功能清单与各 libs/*/AGENTS.md 的库模式。
  3. 配置(Step 2):需要可配置项时,新增 config/yourFeature.ts 或扩展已有配置文件,从 config.ts 导出,并把新增环境变量写入 env.example 并附说明。
  4. API 路由(Step 3):在所用应用中创建接口。Next.js 为 apps/next-app/app/api/your-feature/route.ts(示例中使用 import { yourLogic } from '@libs/your-domain' 与 POST 处理函数);Nuxt.js 为 apps/nuxt-app/server/api/your-feature.post.ts(示例使用 defineEventHandler);TanStack Start 使用 createServerFn 或传统 API 路由。
  5. 页面/UI(Step 4):Next.js 为 apps/next-app/app/[lang]/your-feature/page.tsx,Nuxt.js 为 apps/nuxt-app/pages/your-feature.vue,TanStack Start 为 apps/tanstack-app/src/routes/[lang]/your-feature.tsx;Next 与 TanStack 可复用 libs/react-shared/ 中的共享 React 组件。
  6. i18n(Step 5):在 libs/i18n/locales/en.ts(英文,作为基准)与 libs/i18n/locales/zh-CN.ts(中文,保持相同结构)中同步添加翻译键;组件中不得硬编码面向用户的字符串。
  7. 鉴权与权限(Step 6):需要登录时,Next.js 在 apps/next-app/middleware.ts 中加入中间件保护,Nuxt.js 在 apps/nuxt-app/server/middleware/permissions.ts 中配置,TanStack Start 在路由定义中加入 beforeLoad 守卫;基于角色的访问使用 libs/permissions/ 中的 CASL 权限系统。
  8. 积分(Step 7):若功能消耗积分,在 config/credits.ts 定义成本,调用 libs/credits 的 creditService.consumeCredits(),在 libs/credits/utils.ts 添加交易类型代码,并在 libs/i18n/locales/ 补充积分描述翻译。
  9. 验证(Step 8):运行类型检查(如 pnpm --filter @tinyship/next-app typecheck,可按实际应用调整)与构建(pnpm --filter @tinyship/next-app build),并手工测试:进入新页面、调用 API 端点、验证鉴权保护、切换语言检查 i18n。

适用场景 适用于在 TinyShip 的 Next.js、Nuxt.js 或 TanStack Start 应用中按统一架构新增功能模块的开发者,尤其适合需要复用共享库、统一配置、多语言与权限控制的项目。

限制 资料未说明该指南的版本适用条件、是否支持其他框架、具体性能或收费信息;除前述步骤外,未提供更多功能细节。