我刚刚升级到最新版本的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文件......所以这很有趣..
答案 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项目中复制。
答案 3 :(得分:1)
使用“网络必需品”工具(免费,推荐)启用网络必需品选项中的预览窗格
工具 - &gt;选项 - &gt;网络要点 - &gt;打字稿:显示预览窗格[X]
现在每次保存一个打开的TS文件时,web essentials都会确保文件编译(因此它可以显示),并且您可以在项目运行时更新您的javascript代码。