【问题标题】:How can I pass multiple source files to the TypeScript compiler?如何将多个源文件传递给 TypeScript 编译器?
【发布时间】:2012-09-23 20:48:11
【问题描述】:

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

【问题讨论】:

  • 我还不能回答我自己的问题,所以为了让事情顺利进行,TSC 至少可以通过两种方式了解引用: 1. 添加包含引用的三斜杠注释.ts 源文件顶部的元素,如下所示: /// <reference path="node.d.ts" /> 2. 在命令行中传递“--reference”选项,如下所示:tsc --reference node.d.ts server.ts
  • 我在 onthefly.codeplex.com 上写的 On the Fly 应用程序允许您将任意数量的文件传递给 TypeScript 编译器 - 您可以一次构建/编译所有这些文件,只需点击一个按钮。我不是在“做广告”或“拖钓”,只是让尽可能多的人知道有一个小应用程序可以帮助减轻痛苦,因为事实证明,使用 TypeScript 进行自动编译对许多人来说是个问题。

标签: typescript tsc


【解决方案1】:

只要按顺序命名,tsc 就可以依次编译多个源代码:

tsc foo.ts bar.ts

您还可以使用@ 命令行参数从文本文件中传递包含文件列表和命令行参数的文本文件。

tsc @compile.txt

compile.txt 可能如下所示:

--module amd
foo.ts
bar.ts

另外请注意,如果一个文件通过import 引用另一个文件,tsc 将自动计算出来,而无需您明确列出它所依赖的文件。

【讨论】:

  • 编译单个文件时,typescript会输出其他引用文件的生成代码。通过将所有文件传递给编译器,它不会这样做。 (是否有命令行参数来防止它在编译单个文件时包含引用?)
  • 其实只包含使用--out参数时的参考代码。那么有没有办法在不改变行为的情况下改变输出文件名呢?
  • 我们可以在编译后从输入中得到不同的文件名作为输出文件吗?如果是,那么请建议任何方法。我想将 .ts 转换为 .js 文件。
  • 只有我一个人觉得我不能跑tsc *.ts很奇怪吗?
【解决方案2】:
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

【讨论】:

  • 我试过了,但我无法让它工作。有任何想法吗? stackoverflow.com/questions/25199866/…
  • 工作正常。我运行该解决方案并遇到下一个问题:“错误 TS5037:除非提供了 '--module' 标志,否则无法编译外部模块。”只需像这样添加模块就可以轻松解决这个问题: tsc @ts-files.txt --module "commonjs"
【解决方案3】:

如果有人在 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

【讨论】:

    【解决方案4】:

    使用 TypeScript 1.5(测试版,但最终版本应该很快就会出现),您可以创建一个 tsconfig.json 文件来配置 TypeScript 编译器和要编译的文件(除其他外)。看我那边的回答:How to watch and compile all TypeScript sources?

    【讨论】:

      【解决方案5】:

      或者简单地说:

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

      【讨论】:

        【解决方案6】:

        如果有人需要在实际项目编译之前预编译多个文件,请使用 separate tsconfig--project 编译器选项。

        在给定有效配置文件的情况下编译项目。论据可以 是有效 JSON 配置文件的文件路径,或目录路径 到包含 tsconfig.json 文件的目录。请参阅 tsconfig.json 文档以获取更多详细信息。

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

        【讨论】:

        • 如果您在指定要编译的文件时尝试使用 --project 或 -p 选项,它会抛出 error TS5042: Option 'project' cannot be mixed with source files on a command line.
        猜你喜欢
        • 2015-02-06
        • 1970-01-01
        • 2013-06-29
        • 2012-12-26
        • 2013-12-01
        • 1970-01-01
        • 2015-10-29
        • 1970-01-01
        • 2014-04-08
        相关资源
        最近更新 更多