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

Parcel构建TypeScript库时不生成类型声明仅输出空index.d.ts问题

问题原因及修复方案

1. tsconfig.json 配置缺失/错误

这是最常见的导致空d.ts生成的原因,你需要确认你的项目根目录tsconfig.json包含以下配置:

{
  "compilerOptions": {
    "declaration": true,
    "emitDeclarationOnly": false,
    "rootDir": "./src"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "lib"]
}

注意:即使Parcel本身负责处理类型生成逻辑,依然会读取tsconfig的基础配置,declaration 字段必须显式设为true才能触发类型输出。

2. 入口文件导出规则问题

确认你的入口文件src/index.ts中直接导出了所有需要对外暴露的类型,不要只做类型的内部导入使用,必须显式加export导出,你给出的示例代码写法符合要求,如果你有其他类型要暴露也需要遵循这个规则。

3. 多输出格式配置冲突

你同时配置了main和module两个输出字段,对应CommonJS和ESModule两种产物,需要补充配置明确Parcel的类型输出目标,避免多目标编译时类型生成逻辑冲突,可以在package.json中添加以下配置:

"targets": {
  "main": {
    "types": "./lib/index.d.ts"
  },
  "module": {
    "types": "./lib/index.d.ts"
  }
}

4. 依赖版本兼容问题

你当前使用的Parcel 2.0.1是较早的2.x版本,存在不少类型生成相关的已知bug,可以尝试更新相关依赖到最新稳定版:

yarn add --dev parcel@latest @parcel/packager-ts@latest @parcel/transformer-typescript-types@latest typescript@latest

验证修复

修改配置后运行yarn build,查看lib/index.d.ts是否正常生成内容即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:06:06