我正在使用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 ->'"%(fullpath)"', ' ')" />
<Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>
不幸的是......这有点让我失望。我找不到$(TypeScriptSourceMap)
上的任何文档,也找不到@()
和%()
宏的文档。我似乎并不欣赏我直接复制命令。 (即使在转换HTML实体之后。)
我可以在“外部工具”对话框中输入什么来模仿此构建事件?
我会尝试编写一个PS脚本或其他一些解决方法,但是缺少仅使用'TypeScriptCompile'构建操作处理文件的功能。
答案 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.ts
或tsc project.ts --out app.ts
即可。正确的事情将会发生。