约定
这些约定描述 Hypit 仓库内部的工作方式。项目扩展使用自己的 scope 与公开的 @hypit/hypit/* SDK 子路径。
命名
| 对象 | 约定 | 例子 |
|---|---|---|
| 包目录 | kebab-case | packages/speech-alignment/ |
| 包名 | 带 scope | @hypit/speech-alignment |
| Provider 包 | provider- 前缀 | @studio/provider-images |
| TypeScript 文件 | kebab-case | align.ts |
| 导出的类型 | PascalCase | SpeechAlignment |
| 导出的函数 | camelCase | createSpeechAlignment |
模块边界
包在 package.json 的 exports 里声明公开入口;src/index.ts 是常见的工作区入口。内部模块使用显式 .js 扩展名(NodeNext 解析),避免在构建产物里留下歧义。
为什么值得守约定
- — 依赖图由包边界决定,边界清晰才不会把运行时牵进编辑器
- — 命名一致让 Agent 能猜对文件名,减少来回确认
- — 显式扩展名让 ESM 在 Node 下行为可预期
FAQ
项目扩展也要遵守吗?
命名与边界建议遵守;scope 用你自己的。
能用默认导出吗?
建议用具名导出,便于树摇与类型推断。
可以不做 TypeScript 构建吗?
可以,但示例与官方包都用 TypeScript,跟随示例最省力。