TypeScript不使用WE3和TS 0.9.1.1进行编译

时间:2013-08-26 14:00:29

标签: asp.net-mvc typescript web-essentials

我刚刚升级到最新版本的WebEssentials v3,我的ASP MVC 4项目中的TS文件不再编译为JS了。我验证了选项 - >文字编辑器 - > TypeScript - >项目 - >选中自动编译作为项目选项一部分的TypeScript文件,但在保存或编译项目时没有任何反应。我已经尝试删除WE2创建的现有.js和.min.js文件,但这没有帮助。我尝试将新的TS文件添加到我的项目中,但没有生成JS文件。我重新安装了TS 0.9.1.1,但没有帮助。

Sooooo该怎么办?我错过了一些明显的东西吗有些东西不起作用或者我只是抱错了吗?

我需要回到WE2吗?

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

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

4 个答案:

答案 0 :(得分:10)

WE3的change log中有一些链接,下面是介绍如何启用编译保存功能的链接,有关详细信息,请参阅http://typescript.codeplex.com/wikipage?title=Compile-on-Save

我已经创建了一个名为Ltc.MSBuild.TS0911WE3.targets的nuget包,它可以帮到你,只需打开Package Manager Console,输入Install-Package Ltc.MSBuild.TS0911WE3.targets

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

答案 1 :(得分: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获得的相同体验。

希望有人帮助。很想听听有关解决方案的一些反馈。

答案 2 :(得分:2)

确保您的.project文件具有TypeScript Compile XML部分。如果不存在,您可以从typescript项目中复制。

以下是规范:https://msbuildtypescript.codeplex.com/

答案 3 :(得分:1)

使用“网络必需品”工具(免费,推荐)启用网络必需品选项中的预览窗格

工具 - &gt;选项 - &gt;网络要点 - &gt;打字稿:显示预览窗格[X]

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