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
相关产品推荐
相关产品推荐

