14

我下载并安装了 VS 2012 的 TypeScript 扩展,我得到了我的第一个示例编译我下载并安装了 VS 2012 的 TypeScript 扩展,通过手动将 ts 文件拖到 tsc.exe 文件上因为没有其他方法可以编译该文件。

我不想每次要调试页面时都手动执行此操作!我在网上阅读了大约 5 篇文章,但没有一个解决方案有效。我尝试在 Windows 中将 TypeScript 编译器添加到 PATH,我尝试通过 Nuget Package Manager 下载和安装 Sholo 的东西,我尝试了这些页面:

  1. 在 cshtml 文件中使用 TypeScript
  2. Visual Studio TypeScript 选项
  3. 使用 Visual Studio 调试 TypeScript 代码
  4. 无法使用 tsc 节点模块编译打字稿
  5. 打字稿 - Visual Studio - d3
  6. Visual Studio 2012 TypeScript 项目在编译期间忽略两个文件
  7. TypeScript / Visual Studio 2012 / 编译参数
  8. 在现有的 Visual Studio 网站项目中使用 TypeScript
  9. Visual Studio TypeScript 选项
  10. 在 Visual Studio 中编译生成的文件

没有一个解决方案奏效。

我什至已经下载并安装了 Visual Studio 的 Web Essentials 插件并转到选项菜单,然后选择“在 Build = True 时编译所有 TypeScript 文件”和“在 Save = True 时编译 TypeScript”——但没有任何效果。

我已经阅读了整个 TypeScript 网站、规范,甚至他们在 codeplex 网站上的讨论选项卡。

.ts当我保存对文件的更改按 F5/Debug/Build 时,如何让 TypeScript 编译?

*除非绝对必要,否则我真的不想要任何第三方脚本/插件等。我见过其中的几个,只是……没有意义。我还不如只写纯 JavaScript。

4

7 回答 7

11

您必须确保 .ts 文件的 BuildAction 必须是 TypeScriptCompile。我已将这些行添加到 (.csproj) 项目文件的末尾。(在关闭项目标签之前)它似乎工作。

 <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES3</TypeScriptTarget>
<TypeScriptIncludeComments>true</TypeScriptIncludeComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
 </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TypeScriptTarget>ES3</TypeScriptTarget>
<TypeScriptIncludeComments>false</TypeScriptIncludeComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
</PropertyGroup>
 <Import Project="$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets" />
于 2013-03-21T12:21:48.240 回答
5

当我将 .js 文件重命名为 .ts 时,我遇到了类似的问题。您必须右键单击并将新的 TypeScript 文件添加到您的项目中,以便您的 .csproj 识别应该在此 .ts 文件上使用 TypeScript 编译器。

当您看到展开 .ts 文件的箭头时,您将知道它是正确的。

在此处输入图像描述

于 2012-10-24T14:48:17.733 回答
4

如果将文件更改为.js文件.ts,可以转到 Visual Studio 中的属性面板,将 Build Action 更改为 TypeScriptCompile。这是您更改文件时缺少的内容。这可以使您免于删除和重新添加文件。

于 2012-10-24T16:36:33.280 回答
1

插头

我创建了一个 NuGet 包,它向您的项目添加了一个 afterbuild 目标,因此所有包含的 ts 文件都被编译为 js。

安装包 TypeScript.Compile

于 2013-05-03T12:27:06.603 回答
1

我有同样的问题。我无法将新的 .ts 文件添加到项目中。从 .js 重命名为 .ts 文件后未编译。它甚至没有在命令行中使用 tsc 编译。

但!在 Windows 资源管理器中重新创建文件后,它已成功编译。在脚本文件夹中的 Windows 资源管理器(不是 Visual Studio)中手动创建文件并将其包含到项目中后 - 所有工作。我无法检测到这两个文件之间的更改。但是,如果您在资源管理器中创建文本文件,请将其重命名为 .ts,然后将其包含在项目中并将文件的 Build Action 设置为 TypeScriptCompile - 它可以工作。

于 2012-10-30T11:25:05.113 回答
0

请检查您是否有无效的 TypeScript。有一些 TypeScript 错误未显示在错误列表中,但它们会阻止 TypeScript Compile-On-Save 并Output generation failed在 Visual Studio 状态栏中显示一条消息。

这些是可能导致此问题的 TypeScript 错误:

  • export生成一个不在模块内部的类(v 0.9.5)。

如果还有更多此类错误,请告诉我,我会在此处添加。

于 2014-01-22T12:23:22.570 回答
0

我有同样的问题。我更新了 Web Essentials 扩展并解决了问题。如果您有 Web Essentials 扩展,您可以尝试一下。

于 2013-03-08T12:50:33.137 回答