构建Typescript+React库时tsc编译仅输出类型定义无JS代码如何解决
问题原因
你的tsconfig.json配置中开启了仅输出类型声明的选项,直接导致JS代码生成被跳过:
你在compilerOptions里设置了"emitDeclarationOnly": true,这个配置的作用就是让TypeScript编译器执行构建时,只输出.d.ts类型定义文件和对应的类型映射文件,完全跳过JS代码的编译输出步骤,和你当前遇到的现象完全匹配。
解决方法
如果你需要同时输出可执行的JS代码和类型定义文件,直接删除"emitDeclarationOnly": true这一行配置即可。
保留"declaration": true配置的前提下,重新执行tsc构建,dist目录下就会同时生成对应的JS业务代码、类型定义文件两类产物。
额外说明
如果你的第三方库需要同时兼容CommonJS和ESModule两种导入规范,后续可以考虑使用tsup、unbuild等基于esbuild的库构建工具,相比原生tsc可以更方便的完成双规范产物、样式抽离等第三方库常用的构建需求。
内容的提问来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

