如何将vue-tsc生成的类型合并到单个文件中?
解决vue-tsc生成大量声明文件的问题
1. 集中输出所有声明文件到单独目录
在项目的tsconfig.json中添加declarationDir配置,指定所有.d.ts文件的统一输出路径,避免和源文件混放:
{ "compilerOptions": { // 保留原有配置... "declaration": true, "declarationDir": "./types", // 声明文件统一输出到types目录 "skipLibCheck": true } }
之后执行原命令即可:
vue-tsc --emitDeclarationOnly
所有声明文件会被集中生成在types目录下,源文件目录不会被污染。
2. 关闭声明文件的source map生成
如果不需要.d.ts.map文件(这类文件仅用于调试声明代码),可以在tsconfig.json中禁用该功能:
{ "compilerOptions": { // 保留原有配置... "declarationMap": false // 关闭声明文件的source map生成 } }
执行命令后只会生成.d.ts文件,减少一半冗余文件。
3. 仅为入口文件生成声明(适合组件库场景)
如果是组件库项目,只想对外暴露入口文件的类型,可以调整tsconfig.json的include配置,只指定入口文件:
{ "compilerOptions": { // 保留原有配置... }, "include": ["./main.ts"] // 仅处理入口文件,生成对应声明 }
注意:这种方式需要确保入口文件已经导出了所有需要对外暴露的组件类型,否则会出现类型丢失的情况。
内容的提问来源于stack exchange,提问作者Andrew Rusinas
相关产品推荐
相关产品推荐

