11

我刚刚升级到最新版本的 WebEssentials v3,并且我的 ASP MVC 4 项目中的 TS 文件不再编译为 JS。我验证了Options --> Text Editor --> TypeScript --> Project --> Automatically compile TypeScript files which are part of a project选项被选中,但是当我保存或编译我的项目时没有任何反应。我尝试删除 WE2 创建的现有 .js 和 .min.js 文件,但这没有帮助。我尝试在我的项目中添加一个新的 TS 文件,但没有生成 JS 文件。我重新安装了 TS 0.9.1.1 并没有帮助。

呜呜呜怎么办?我错过了一些明显的东西吗?是不是有些东西不起作用,或者我只是有错误的期望?

我需要回到WE2吗?

更新:我什至创建了一个全新的 ASP MVC 4 C# 项目来验证它不仅仅是我原来的项目,但我得到了相同的结果。

有趣的是,我刚刚创建了一个新的 TypeScript 项目,并且我的 TS 文件在保存时正确编译......所以这很有趣......

4

4 回答 4

10

WE3 的更改日志中有一些链接,这里是描述如何启用 compile-on-save 功能的链接,详细信息请参见http://typescript.codeplex.com/wikipage?title=Compile-on-Save

我创建了一个名为的 nuget 包Ltc.MSBuild.TS0911WE3.targets,它可以为您解决问题,只需打开Package Manager Console,输入Install-Package Ltc.MSBuild.TS0911WE3.targets

转到nuget.org上的 Ltc.MSBuild.TS0911WE3.targets。

于 2013-08-26T17:36:39.857 回答
3

我不确定这是否是解决问题的正确方法,但这是我为在我的项目中“保存时编译”所做的工作......

在注意到从带有 TypeScript 项目的新 HTML 应用程序开始时 Compile On Save 有效后,我将它与我的非工作 ASP MVC 项目进行了比较。原来,我的 ASP MVC 项目缺少这段代码..

  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptTarget>ES3</TypeScriptTarget>
    <TypeScriptRemoveComments>false</TypeScriptRemoveComments>
    <TypeScriptSourceMap>true</TypeScriptSourceMap>
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <TypeScriptTarget>ES3</TypeScriptTarget>
    <TypeScriptRemoveComments>true</TypeScriptRemoveComments>
    <TypeScriptSourceMap>false</TypeScriptSourceMap>
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind>
  </PropertyGroup>
  <Import Project="$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets" />

将其复制/粘贴到我的 ASP MVC 项目中,再次为我提供了 Compile On Save 支持。当然,这仍然不是我所期望的。生成的 JS 文件不会自动添加到项目中,所以这是我必须手动执行的操作。我还必须手动将 JS 文件与 TS 文件分组,以模仿我在 WE2 中获得的相同体验。

希望对某人有所帮助。希望听到有关解决方案的一些反馈。

于 2013-08-26T14:44:11.343 回答
2

确保您的 .proj 文件具有 TypeScriptCompile XML 部分。如果 typescript 项目不存在,您可以从它复制。

这是规范:https ://msbuildtypescript.codeplex.com/

于 2013-08-26T14:19:16.237 回答
1

使用“Web Essentials”工具 (免费,推荐)在 Web Essentials 选项中启用预览窗格

工具 --> 选项 --> Web 基本要素 --> 打字稿:显示预览窗格[X]

现在,每次您保存打开的 TS 文件时,Web Essentials 都会确保该文件能够编译(因此它可以显示它),并且您可以在项目运行时更新您的 javascript 代码。

于 2014-03-02T15:26:18.597 回答