mcpField
T
ts-library

ts-library

github.com/onmax开发7232.0k 次安装今天更新
代码仓库

关于 ts-library

面向 TypeScript 库作者的开发技能,汇集项目结构、构建、API 设计、测试与发布等实践,并按任务提供参考文档。

主要功能

  1. 01库项目初始化与配置
  2. 02CJS 和 ESM 包导出
  3. 03类型安全 API 设计
  4. 04构建与测试设置
  5. 05发布及 CI 工作流

适用场景

  1. 01启动单包或 monorepo 库
  2. 02配置 package.json 导出
  3. 03设计类型推断与插件 API
  4. 04设置测试、发布或 CI

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/onmax/nuxt-skills --skill ts-library

安装后在 Claude Code 中输入/ts-library确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

patterns/
api.md
types.md
references/
api-design.md
build-tooling.md
ci-workflows.md
eslint-config.md
package-exports.md
project-setup.md
release.md
testing.md
type-patterns.md
typescript-config.md
setup/
exports.md
project.md
tsconfig.md
workflows/
ci.md
release.md
testing.md

详细介绍

TypeScript 库开发

从研究 unocss、shiki、unplugin、vite、vitest、vueuse、zod、trpc、drizzle-orm 等项目中提取的高质量 TypeScript 库编写模式。

适用场景

  • 开始开发新的 TypeScript 库(单仓库或 monorepo)
  • 设置 package.json 导出以支持 CJS/ESM 双格式
  • 配置用于库开发的 tsconfig
  • 选择构建工具(tsdown、unbuild)
  • 设计类型安全的 API(builder、factory、插件模式)
  • 编写高级 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

加载文件

请根据任务考虑加载以下参考文件:

请勿一次性加载所有文件。 只加载与当前任务相关的文件。

新建库工作流

  1. 创建项目结构 → 加载 references/project-setup.md
  2. 配置 package.json 导出 → 加载 references/package-exports.md
  3. 使用 tsdown 设置构建 → 加载 references/build-tooling.md
  4. 验证构建:pnpm build && pnpm pack --dry-run — 检查输出是否包含 .mjs、.cjs、.d.ts
  5. 添加测试 → 加载 references/testing.md
  6. 配置发布 → 加载 references/release.md

快速开始

// package.json (minimal)
{
  "name": "my-lib",
  "type": "module",
  "exports": {
    ".": {
      "import": "./dist/index.mjs",
      "require": "./dist/index.cjs"
    }
  },
  "main": "./dist/index.cjs",
  "module": "./dist/index.mjs",
  "types": "./dist/index.d.ts",
  "files": ["dist"]
}
// tsdown.config.ts
import { defineConfig } from 'tsdown'

export default defineConfig({
  entry: ['src/index.ts'],
  format: ['esm', 'cjs'],
  dts: true,
})

核心原则

  • ESM 优先:使用 "type": "module",输出 .mjs
  • 双格式:始终支持 CJS 和 ESM 使用者
  • 现代 TypeScript 使用 moduleResolution: "Bundler"
  • 大多数构建使用 tsdown,复杂场景使用 unbuild
  • 智能默认值:检测环境,不强制配置
  • 支持摇树优化:使用惰性 getter,并正确设置 sideEffects: false

令牌效率:主技能约 300 个令牌,每个参考约 800–1200 个令牌

评论

支持 Markdown