将TypeScript构建事件转换为外部工具命令

时间:2012-12-12 23:38:26

标签: visual-studio visual-studio-2012 typescript build-events external-tools

我正在使用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'构建操作处理文件的功能。

1 个答案:

答案 0 :(得分:2)

$(TypeScriptSourceMap)来自项目文件前面的大约4行。在调试配置中它只是" --sourcemap",否则就是""

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

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

<强> project.ts

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

<强> file1.ts

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

class alpha { ... }

<强> file2.ts

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

class beta { ... }

通过该设置,您只需运行tsc project.tstsc project.ts --out app.ts即可。正确的事情将会发生。