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

如何通过Bun Build打包生成单文件类型定义(.d.ts)?

实现生成单文件.d.ts的方法

目前Bun的build命令暂时不支持直接生成合并后的单文件类型定义,你可以通过以下两步实现需求:

步骤1:生成完整的分散类型定义文件

首先确保能生成所有依赖的.d.ts文件,有两种方式可选:

方式A:用Bun自带的类型生成

在原有的Bun build命令中添加--declaration参数,强制生成类型文件:

bun build ./index.ts --outdir ./build --declaration

执行后,build目录下会生成和源码结构对应的.d.ts文件(包括依赖模块的类型)。

方式B:用TypeScript编译器单独生成

如果Bun生成的类型不全,直接用tsc命令,基于你的tsconfig.json生成所有类型文件:

tsc --emitDeclarationOnly --outDir ./build

这个命令只会生成.d.ts,不会编译js,适合单独处理类型。

步骤2:合并分散的.d.ts为单文件

用专门的工具把多个.d.ts合并成一个单文件,推荐两个常用工具:

工具1:dts-bundle-generator

  1. 先安装依赖:
bun add -d dts-bundle-generator
  1. 执行合并命令,指定入口文件,输出单文件类型:
bunx dts-bundle-generator ./index.ts -o ./build/index.d.ts

这个工具会自动分析所有依赖的类型,合并成一个完整的index.d.ts。

工具2:@microsoft/api-extractor

如果你的项目是大型库,需要更规范的类型导出,用这个工具:

  1. 安装依赖:
bun add -d @microsoft/api-extractor @microsoft/api-extractor-model
  1. 初始化配置文件:
bunx api-extractor init
  1. 修改生成的api-extractor.json,主要调整以下配置:
    • mainEntryPointFilePath设置为./build/index.d.ts(对应步骤1生成的入口类型文件)
    • dtsRollup下的untrimmedFilePath设置为./build/index.d.ts
  2. 执行合并:
bunx api-extractor run --local

执行后会在指定路径生成合并好的单文件类型定义。

可选:整合为npm脚本

为了方便使用,可以在package.json里添加脚本:

{
  "scripts": {
    "build": "bun build ./index.ts --outdir ./build --declaration",
    "build:dts": "bunx dts-bundle-generator ./index.ts -o ./build/index.d.ts",
    "build:all": "npm run build && npm run build:dts"
  }
}

之后执行bun run build:all就能一键生成js和合并后的d.ts。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 00:10:56