14

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

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

4

5 回答 5

9

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

使用您喜欢的文本编辑器将以下行放入您的项目文件中。BeforeBuildproj 文件的末尾通常已经有一个注释掉的部分,您可以用这些行替换它。重新加载项目,您就可以开始了。现在将在编译期间生成 .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 的资源捆绑之类的工具检索引用并以正确的顺序呈现事物。

于 2012-10-02T14:10:26.197 回答
1

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

于 2012-10-25T16:37:10.227 回答
0

Ok, I have reinstalled everything, including the vsix file. Apparently when I "run" my project now, the .ts file is automatically converted into a .js file (without custom build actions). That's ok for now. It would have been better if these files follow other code generators in that they compile when the source file gets saved. I would write my own SingleFileGenerator implementation for it but I do not yet know how to call the .js from c#.

于 2012-10-07T09:44:26.793 回答
0

有几个人遇到过这个问题,包括我自己。修复方法是手动安装 typescript visual studio extension

安装程序在这里:

“C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.0.0\TypeScriptLanguageService.vsix”

或在 x86 机器上:

“C:\Program Files\Microsoft SDKs\TypeScript\0.8.0.0\TypeScriptLanguageService.vsix”

于 2012-10-02T19:38:28.560 回答
0

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

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

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

<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')" />

Project/PropertyGroup3)在元素下配置目标TypeScript版本

<TypeScriptToolsVersion>1.5</TypeScriptToolsVersion> 
于 2015-08-28T11:19:53.353 回答