将多个 TypeScript 文件合并为一个 TypeScript 定义文件

10

我需要将TypeScript库打包成单个文件进行分发。是否有一种方法可以将多个TypeScript文件合并为(一个js文件+一个TypeScript定义)文件?


抱歉,您所说的“删除所有静态信息”是什么意思?TypeScript将联系到单个文件,您是否使用类似于此的引用:///<reference path='dgrid.d.ts' /> - 7zark7
@7zark7 更明确地提出了问题。现在应该很清楚了。 - basarat
TypeScript库应该以TypeScript形式还是JavaScript形式与相关的定义文件一起分发? - MiMo
@MiMo 我认为Steve的回答是你想要的。--声明多个文件会为每个文件生成一个.d.ts文件。我今天早上测试了一下:github.com/basarat/ts-test/tree/master/tests/compileToSingle 如果只有一个js文件和一个d.ts文件,我也可以接受。 - basarat
@BASarat,你的测试有一个缺陷。你需要同时指定--out和--declaration才能得到单个.js和单个.d.ts文件。 - Jeffery Grajkowski
问题已修复,程序正常运行。谢谢。 - basarat
1个回答

7

要创建一个库,您可以按以下方式进行编译:

tsc --outfile mylib.js --declaration app.ts

这意味着您将获得编译后的JavaScript和TypeScript定义文件,而且在TypeScript中使用它与单个TypeScript文件一样简单。

您不需要指定要组合的所有文件,编译器会遍历所有依赖项并将它们全部带入正确的顺序的一个文件中。在上面的示例中,我只指定了app.ts,但是所有引用都将被遍历,并且它们都将进入组合的mylib.js和相关的mylib.d.ts文件。


3
我担心作者想要将多个TypeScript文件合并成一个TypeScript文件,而不是将JavaScript文件用作.ts文件。例如:如果他有File1.ts,File2.ts,...,FileN.ts,则希望运行一个命令来生成TheUltimateSingleFileTypeScriptLibrary.ts,以便他可以部署他的TypeScript库供其他开发人员在其项目中使用。也许我理解有误,但这是我对他的问题的理解。 - jfoliveira
2
如果有人看到这个帖子但没有看到其他帖子,我会重复一遍。如果指定了 --out --declaration,则会得到一个单独的 .d.ts 文件。 - Jeffery Grajkowski
1
@BASarat 我已经纠正了你编辑中的一个点——你不需要指定所有文件,因为编译器会为你遍历引用链。 - Fenton
1
@jayarjo 是的 - 你在命令行中指定的所有标志也可以在 tsconfig.json 文件的编译器选项部分中使用。 - Fenton
1
选项“out”已被弃用并将在TypeScript 5.5中停止运作,请改用“outFile”。 - JSchirrmacher
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接