如何将多个源文件传递给TypeScript编译器?

如何将多个源文件传递给TypeScript编译器?,typescript,tsc,Typescript,Tsc,TypeScript是为大型JavaScripty项目设计的,这些项目通常由多个内部生成的文件和外部生成的库组成。TypeScript编译器(tsc)希望您如何向其提供组成项目的完整文件集?tsc可以按顺序编译多个源代码,只要您按顺序给出名称: tsc foo.ts bar.ts 还可以使用@命令行参数从文本文件传递包含文件列表和命令行参数的文本文件 tsc @compile.txt 而compile.txt可以如下所示: --module amd foo.ts bar.ts 还请注意,

TypeScript是为大型JavaScripty项目设计的,这些项目通常由多个内部生成的文件和外部生成的库组成。TypeScript编译器(tsc)希望您如何向其提供组成项目的完整文件集?

tsc可以按顺序编译多个源代码,只要您按顺序给出名称:

tsc foo.ts bar.ts
还可以使用
@
命令行参数从文本文件传递包含文件列表和命令行参数的文本文件

tsc @compile.txt
compile.txt
可以如下所示:

--module amd
foo.ts
bar.ts

还请注意,如果文件中通过
导入
,引用了另一个文件,
tsc
将自动计算出来,而无需明确列出它所依赖的文件

dir *.ts /b /s > ts-files.txt
tsc @ts-files.txt
del ts-files.txt
这将编译工作目录及其子目录中的所有
*.ts
文件。如果不想包含子目录,只需从第一行删除
/s
部分即可

请注意,您还可以向
tsc
行添加其他参数。以下是我现在在我的一个项目中使用的内容:

tsc @ts-files.txt --out ..\output\deerchao.web.js --removeComments

如果任何人在Mac OS X上需要此功能:

find . -name "*.ts" -type f >ts-files.txt
/usr/local/bin/tsc @ts-files.txt --module CommonJS --out ./Deploy/ServerMain.js --removeComments
rm ts-files.txt
使用TypeScript 1.5(beta版,但最终版本很快就会出现),您可以创建一个tsconfig.json文件来配置TypeScript编译器和要编译的文件(以及其他内容)。请看那边我的答案:

或者简单地说:

find ./my/path/ -name \"*.ts\" -type f | tsc

如果有人需要在实际项目编译之前预传输多个文件,请使用带有--project编译器选项的单独的tsconfig

在给定有效配置文件的情况下编译项目。这一论点是站不住脚的 是有效JSON配置文件的文件路径或目录路径 指向包含tsconfig.json文件的目录。请参阅tsconfig.json 有关更多详细信息,请参阅文档


一个用例是需要在ionic应用程序脚本的命令行参数中使用生成的JS文件。

还不能回答我自己的问题,所以要想顺利进行,TSC至少可以通过两种方式了解引用:1。将包含引用元素的三斜杠注释添加到.ts源文件的顶部,如下所示:///reference path=“node.d.ts”/2。在命令行上传递“-reference”选项,如下所示:tsc--reference node.d.ts server.tsAn我在运行中编写的应用程序,over at允许您将任意数量的文件传递给TypeScript编译器,只需单击一个按钮,您就可以一次构建/编译所有这些文件。我不是在“做广告”或“推拉”,只是让尽可能多的人知道有一个小应用程序可以帮助缓解痛苦,因为用TypeScript自动编译对许多人来说都是有问题的。编译单个文件时,TypeScript将输出其他引用文件的生成代码。通过将所有文件传递给编译器,它不会执行此操作。(是否有命令行参数阻止它在编译单个文件时包含引用?)。那么,有没有一种方法可以在不改变行为的情况下更改输出文件名?编译后,我们可以从输入中获得不同的文件名作为输出文件吗?如果是,请如何建议任何方法。我想将.ts转换为.js文件。我是唯一一个认为我不能运行
tsc*.ts
很奇怪的人吗?我试过了,但没能让它工作。有什么想法吗?很好。我运行了这个解决方案,遇到了下一个问题:“错误TS5037:除非提供了'--module'标志,否则无法编译外部模块。”只需添加如下模块即可轻松修复:tsc@ts-files.txt--module“commonjs”它抛出
错误TS5042:选项“project”不能与命令行上的源文件混合。
如果在指定要编译的文件时尝试使用--project或-p选项。