我刚刚升级到最新版本的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文件在保存时正确编译...所以这很有趣..
有一些链接 改变日志 WE3,这里是一个描述如何启用编译保存功能,请参阅 http://typescript.codeplex.com/wikipage?title=Compile-on-Save 详情。
我创建了一个名为的nuget包 Ltc.MSBuild.TS0911WE3.targets
哪个会为你做的,只是打开 Package Manager Console
, 输入 Install-Package Ltc.MSBuild.TS0911WE3.targets
!
去 Ltc.MSBuild.TS0911WE3.targets 在nuget.org上。
我不确定这是否是解决问题的正确方法,但这就是我在我的项目中使用“编译保存”所做的工作......
注意到从新的启动时Compile On Save工作 使用TypeScript的HTML应用程序 我和它的非工作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中获得的相同体验。
希望能帮助别人。很想听听有关解决方案的一些反馈。
确保您的.proj文件具有TypeScriptCompile XML部分。如果不存在,您可以从typescript项目中复制。
这是规范: https://msbuildtypescript.codeplex.com/
使用“网络必需品”工具 (免费,推荐)启用Web essentials选项中的预览窗格
工具 - >选项 - > Web要点 - >打字稿:显示预览窗格[X]
现在每次保存一个打开的TS文件时,web essentials都会确保文件编译(因此它可以显示它),并且您可以在项目运行时更新您的javascript代码。