Visual studio 将TypeScript生成事件转换为外部工具命令
我正在使用Visual Studio 2012 Express for Web处理TypeScript文件。由于WebEssentials插件不适用于Express Edition,并且每次更新脚本时重建整个项目的时间开始太长,因此我希望将以下生成事件(从TypeScript项目模板)转换为“外部工具”命令,以便放置在工具栏上Visual studio 将TypeScript生成事件转换为外部工具命令,visual-studio,visual-studio-2012,typescript,build-events,external-tools,Visual Studio,Visual Studio 2012,Typescript,Build Events,External Tools,我正在使用Visual Studio 2012 Express for Web处理TypeScript文件。由于WebEssentials插件不适用于Express Edition,并且每次更新脚本时重建整个项目的时间开始太长,因此我希望将以下生成事件(从TypeScript项目模板)转换为“外部工具”命令,以便放置在工具栏上 <Target Name="BeforeBuild"> <Message Text="Compiling TypeScript files" /&g
<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”生成操作处理文件的功能。$(TypeScriptSourceMap)
来自项目文件前面的大约4行。当处于调试配置时,它只是--sourcemap,否则是“”
这里的@()
语法基本上意味着“对于构建操作为TypeScriptCompile
的每个项目项,将其完整路径放在双引号中,并用空格连接这些结果项
TypeScript项目的一个新出现的最佳实践是有一个如下所示的“project.ts”文件:
project.ts
/// <reference path="file1.ts" />
/// <reference path="file2.ts" />
/// ... and so on
/// <reference path="project.ts" />
class alpha { ... }
/// <reference path="project.ts" />
class beta { ... }
//
///
///……等等
file1.ts
/// <reference path="file1.ts" />
/// <reference path="file2.ts" />
/// ... and so on
/// <reference path="project.ts" />
class alpha { ... }
/// <reference path="project.ts" />
class beta { ... }
//
类alpha{…}
file2.ts
/// <reference path="file1.ts" />
/// <reference path="file2.ts" />
/// ... and so on
/// <reference path="project.ts" />
class alpha { ... }
/// <reference path="project.ts" />
class beta { ... }
//
类beta{…}
通过这种设置,您只需运行
tsc project.ts
或tsc project.ts--out app.ts
,就会发生正确的事情。很有趣。您知道@()
语法记录在哪里吗?tsc抱怨找不到名为“(TypeScriptCompile”)的文件,因此,在执行外部工具时,它似乎不会被解析。无论如何,我可能会切换到使用project.ts技巧,但知道这一点肯定很好。使用您建议的技巧时,会出现一个非常奇怪的错误:文件的未知扩展名:“scripts\project.ts”。只允许使用.ts和.d.ts扩展名。
当我提供完整路径时也是如此。疯狂的“错误扩展名”错误已在0.8.1.1中修复;我建议升级。哈,是的。刚刚意识到文件丢失了。我在路径中丢失了一个目录。再次感谢。