TypeScriptCompile构建操作似乎没有做任何事情

时间:2012-10-02 09:41:42

标签: typescript

当我向我的解决方案中添加一个新的TypeScript文件时,系统很好地为我提供了一个(预填充的).ts文件,下面是.js文件。这种配置让我觉得从TypeScript到JavaScript的转换是自动的。 .ts文件具有Build Action'TypeScriptCompile'这一事实加强了这一假设。但是,无论我做什么(保存更改的ts,编译项目......),都没有真正发生。

我知道我可以为项目添加预建步骤,但我真的希望TypeScriptCompile构建操作自动启动,这样我只需要保存要重新生成的.js文件的文件。我需要做些什么才能使'TypeScriptCompile'按预期/期望工作?

5 个答案:

答案 0 :(得分:9)

我在尝试在MVC4项目中使用TypeScript时遇到了同样的问题,但解决了这个问题!

使用您喜欢的文本编辑器将以下行放入项目文件中。通常在proj文件的末尾有一个注释掉的BeforeBuild部分,您可以用这些行替换它。重新加载项目,你很高兴。现在将在编译期间生成.js文件。

<Target Name="BeforeBuild">
  <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

请仔细查看确切的路径,但可能会有所不同(例如,如果您有不同版本的Typescript SDK)。同样,如果tsc.exe已经在PATH环境变量中,则可以使用与版本无关的命令:

<Target Name="BeforeBuild">
  <Exec Command="&quot;tsc&quot; @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

最后,如评论中所述,您可能希望添加-c以保留对命令行的注释。这允许像卡带和盒子这样的工具。 asp.net的资源绑定,用于检索引用并以正确的顺序呈现内容。

答案 1 :(得分:1)

有些人遇到过这个问题,包括我自己。修复方法是manually install the typescript visual studio extension

安装程序在这里:

  

“C:\ Program Files(x86)\ Microsoft   的SDK \打字稿\ 0.8.0.0 \ TypeScriptLanguageService.vsix“

或在x86机器上:

  

“C:\ Program Files \ Microsoft   的SDK \打字稿\ 0.8.0.0 \ TypeScriptLanguageService.vsix“

答案 2 :(得分:1)

如果您仍然遇到问题compiling typescript files,您可能需要查看我刚刚发布的应用。只需单击一下按钮即可编译文件。

答案 3 :(得分:0)

好的,我重新安装了所有内容,包括vsix文件。显然,当我现在“运行”我的项目时,.ts文件会自动转换为.js文件(没有自定义构建操作)。现在好了。如果这些文件跟随其他代码生成器会更好,因为它们在源文件保存时进行编译。我会为它编写自己的SingleFileGenerator实现,但我还不知道如何从c#调用.js。

答案 4 :(得分:0)

如果将Visual Studio 2013与最新的TypeScript 1.5一起使用,则可能需要安装TypeScript tools for Visual Studio。我还建议安装Web Essentials,它将在保存时调用.ts脚本文件编译(除了许多其他有用的功能)。

然后按照Visual Studio在.csproj文件中为新Web项目所做的步骤进行操作。

1)通过在根Project元素下添加以下元素来导入MSBuild TypeScript属性:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />

2)导入MSBuild TypeScript构建目标

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />

3)在Project/PropertyGroup元素

下配置目标TypeScript版本
<TypeScriptToolsVersion>1.5</TypeScriptToolsVersion>