name: ts-library description: 用于编写TypeScript库时的技能 - 涵盖项目设置、包导出、构建工具(tsdown/unbuild)、API设计模式、类型推断技巧、测试和发布工作流程。从20多个高质量生态库中提取的模式。 license: MIT
TypeScript库开发
从研究unocss、shiki、unplugin、vite、vitest、vueuse、zod、trpc、drizzle-orm等库中提取的编写高质量TypeScript库的模式。
何时使用
- 开始一个新的TypeScript库(单仓库或monorepo)
- 设置package.json导出以支持双CJS/ESM格式
- 配置tsconfig进行库开发
- 选择构建工具(tsdown、unbuild)
- 设计类型安全的API(构建器、工厂、插件模式)
- 编写高级TypeScript类型
- 设置vitest进行库测试
- 配置发布工作流程和CI
对于Nuxt模块开发: 使用nuxt-modules技能
快速参考
| 处理… | 加载文件 |
|---|---|
| 新项目设置 | references/project-setup.md |
| 包导出 | references/package-exports.md |
| tsconfig选项 | references/typescript-config.md |
| 构建配置 | references/build-tooling.md |
| ESLint配置 | references/eslint-config.md |
| API设计模式 | references/api-design.md |
| 类型推断技巧 | references/type-patterns.md |
| 测试设置 | references/testing.md |
| 发布工作流程 | references/release.md |
| CI/CD设置 | references/ci-workflows.md |
加载文件
根据您的任务考虑加载这些参考文件:
- [ ] references/project-setup.md - 如果开始一个新的TypeScript库项目
- [ ] references/package-exports.md - 如果配置package.json导出或双CJS/ESM格式
- [ ] references/typescript-config.md - 如果设置或修改tsconfig.json
- [ ] references/build-tooling.md - 如果配置tsdown、unbuild或构建脚本
- [ ] references/eslint-config.md - 如果为库开发设置ESLint
- [ ] references/api-design.md - 如果设计公共API、构建器模式或插件系统
- [ ] references/type-patterns.md - 如果使用高级TypeScript类型或类型推断
- [ ] references/testing.md - 如果设置vitest或为库代码编写测试
- [ ] references/release.md - 如果配置发布工作流程或版本控制
- [ ] references/ci-workflows.md - 如果设置GitHub Actions或CI/CD管道
不要一次性加载所有文件。 只加载与您当前任务相关的文件。
关键原则
- ESM优先:使用
"type": "module"和.mjs输出 - 双格式:始终支持CJS和ESM消费者
- 现代TypeScript使用
moduleResolution: "Bundler" - 大多数构建使用tsdown,复杂情况使用unbuild
- 智能默认值:检测环境,不强制配置
- 可树摇动:延迟获取器,正确的
sideEffects: false
令牌效率:主技能约300令牌,每个参考约800-1200令牌