You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将node_modules依赖的d.ts类型打包嵌入SDK声明文件?

实现类型内联的解决方案

TypeScript自带的tsc编译只会保留对外部模块的类型引用,没法直接把node_modules里的内部类型嵌入到生成的.d.ts文件中。要达成你要的效果,推荐用Microsoft API Extractor——这是专门为SDK开发设计的工具,能自动处理依赖类型的内联,同时解决内部模块相互引用的问题。

具体操作步骤:

  1. 安装API Extractor
npm install @microsoft/api-extractor --save-dev
  1. 生成配置文件
    在项目根目录执行初始化命令:
npx api-extractor init

这会生成api-extractor.json,重点修改以下几项:

  • mainEntryPointFilePath:指定你tsc编译后的入口.d.ts路径,比如./dist/index.d.ts
  • dtsRollup.untrimmedFilePath:设置最终生成的合并类型文件路径,比如./dist/index.bundled.d.ts
  • compiler.skipLibCheck:设为true,避免内部模块的类型检查冲突
  1. 生成内联后的类型文件
    先正常用tsc编译你的代码,再运行API Extractor:
npx api-extractor run --local

完成后,dist/index.bundled.d.ts里就会包含内联的TestType定义,不再有对@internal-types/module1的引用,完全符合你的预期效果。

为什么不推荐手动复制模块?

你之前尝试的手动复制+修改路径的方式,很容易因为内部模块之间的相互引用陷入混乱——API Extractor会自动递归解析所有依赖的类型,处理重名、循环引用等问题,比手动操作可靠得多。

补充配置

如果@internal-types/*是私有npm包,记得在api-extractor.json的allowedPackageNames数组里添加这个包名前缀,确保工具能正确识别并处理这些内部类型。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:15:33