1

我正在使用 Visual Studio 2012 Express for Web 处理 TypeScript 文件。由于 Web Essentials 插件不适用于 Express 版本,并且每次更新脚本时重建整个项目开始花费太长时间,我希望将以下构建事件(来自 TypeScript 项目模板)转换为 '可以放置在工具栏上的外部工具命令。

<Target Name="BeforeBuild">
  <Message Text="Compiling TypeScript files" />
  <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
  <Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

不幸的是......这有点失去了我。我找不到关于$(TypeScriptSourceMap)@()%()宏的任何文档。它似乎也不喜欢我直接复制命令。(即使在转换 HTML 实体之后。)

为了模仿这个构建事件,我可以在“外部工具”对话框中输入什么?

我将尝试编写一个 PS 脚本或一些诸如解决方法之类的方法,但这将缺乏仅使用“TypeScriptCompile”构建操作处理文件的功能。

4

1 回答 1

2

$(TypeScriptSourceMap)来自项目文件前面大约 4 行。它只是" --sourcemap"在调试配置和""其他情况下。

这里的@()语法基本上意味着“对于构建操作为 的每个项目项TypeScriptCompile,将其完整路径放在双引号中,并用空格连接这些结果项。

一个新兴的 TypeScript 项目最佳实践是拥有一个如下所示的“project.ts”文件:

项目.ts

/// <reference path="file1.ts" />
/// <reference path="file2.ts" />
/// ... and so on

文件1.ts

/// <reference path="project.ts" />

class alpha { ... }

文件2.ts

/// <reference path="project.ts" />

class beta { ... }

通过该设置,您可以简单地运行tsc project.tsortsc project.ts --out app.ts并且正确的事情将会发生。

于 2012-12-13T00:05:48.763 回答