NPM 包 API 表面提取器
将以下提示词粘贴到你的 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.tsrollup(合并包内分散的类型声明,减少消费方的类型解析开销)。
使用注意点
- 需提前安装 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 导航平台。