Agent Skills
返回列表
💻

NPM 包 API 表面提取器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/npm-package-api-surface-extractor 到当前 AI 助手。

技能介绍

解决的问题

NPM 包发布后,开发者常面临两类 API 边界问题:一是漏导出公开接口依赖的类型(比如 AwesomeButton.draw() 需要 DrawStyle 枚举但未导出),导致消费方使用时报错;二是内部实现变更时无法快速识别哪些公开 API 被修改,容易引入 breaking change。手动梳理这些问题不仅耗时,还容易遗漏非直观的导出项。

核心工作逻辑

该技能通过两个关键工具协同工作:

  • 用 TypeScript Compiler API(ts.createProgram)解析 NPM 包源码,识别所有可能的导出项(包括类、接口、函数、类型、枚举等);
  • 调用 @microsoft/api-extractor 提取真正的公开 API 表面,过滤掉仅内部使用的符号;
  • 最终生成两类文件:.api.md 报告(记录公开 API 的结构与说明,可用于代码审查)和 .d.ts rollup(合并包内分散的类型声明,减少消费方的类型解析开销)。

使用注意点

  • 需提前安装 Node.js 和 TypeScript 环境;
  • 依赖目标 NPM 包本身的 TypeScript 配置正确,若包使用 isolatedModules 或动态导出需额外验证;
  • 对于依赖原生模块或 CommonJS/ESM 混合导出的包,可能需要调整 API Extractor 的配置参数。

使用场景

  • 封装前端 SDK 后:当团队封装了包含多种组件和类型的 SDK 并发布为 NPM 包后,需要生成标准化的类型声明文件,确保下游业务能够顺利导入和使用对应的 TS 类型。
  • 跨版本升级时:在进行大型 TypeScript 开源库的主版本升级时,需要比对上一版本的 API 报告,排查是否引入了未公开的 breaking change,或遗漏了对外暴露的类型声明。
  • 补充 API 文档时:发现 NPM 包中由于函数遗漏了对必要枚举参数的导出,导致文档缺失且调用报错时,需要重新扫描包结构并生成完整的 .api.md 报告进行修复与审查。

适合人员

  • 中高级前端工程师:负责团队基础架构建设,需要为自研的 NPM 组件库生成可靠的类型声明和 API 文档,确保组件在多业务线复用时类型安全。
  • 开源库维护者:维护大型 TypeScript 开源项目,希望在每次发布新版本时,自动校验公开 API 的变化,避免因漏导出关键类型导致用户编译报错。
  • API 平台集成开发者:需要快速解析第三方 NPM 包的 API 表面结构,提取出可用的方法签名和类型依赖,以便集成到公司内部的 API 导航平台。