我无法使用Compile-on-Save与VS2013配合使用。我安装了VS2013,重新安装了TS 0.9.0.1,在“工具”,“选项”,打字稿/项目/常规下,我检查了两个“编译保存”选项。但是当我向项目添加一个新的TS文件,然后编辑并保存它时,更改不会反映在相关的.js文件中。
我做错了吗?有其他人有这个问题吗?
答案 0 :(得分:52)
This为我解决了这个问题:
- 转到“工具”菜单下的“选项”。
- 展开文字编辑器的选项
- 展开TypeScript的选项
- 展开Project
的选项- 选中“自动编译不属于项目的TypeScript文件”
醇>
答案 1 :(得分:16)
我遇到以下情况:该项目是使用vs2012和早期版本的typescript创建的。我升级到了VS2013,并且在保存时没有编译最新版本的typescript(0.9.1.1)和脚本。
然后我从我的项目中排除了typescript文件,并使用Add existing file再次添加它。之后,typescript文件在保存时编译正确!!
答案 2 :(得分:7)
在升级到Web Essentials 1.85(2月14日)之后,TypeScript 0.9.5编译保存在现有项目上停止工作。我重新安装两个都没有用,但看到它适用于新项目后,我尝试在我的csproj中改变这一行,从中;
<Project ToolsVersion="4.0" />
到
<Project ToolsVersion="12.0"/>
神奇的是,编译保存再次开始工作。
答案 3 :(得分:4)
请尝试按照以下说明操作:
我一直在努力解决这个问题,但我认为我对它进行了整理。我认为部分混乱来自于WebEssentials与新的TypeScript插件集成之间的差异。
我是TypeScript的早期采用者,并在2012年使用WebEssentials工具进行保存编译。我已将此配置为生成.js和.min.js文件,这些文件都自动添加到项目中。
升级到VS 2013时,我从内置的TypeScript支持中寻找相同的功能,但它不存在(据我所知)。
相反,我相信2013年的集成工具涵盖了开发和生产工作流程。
上面的说明为您设置了在发布期间应该进行的构建时编译。在开发期间,“编译保存”功能会在磁盘上生成文件,但不会将它们添加到项目中。
然后我意识到生成的文件实际上并不像以前那样是项目的一部分,为什么它比WebEssentials解决方案更好(不包括缺少预览窗口!)。
答案 4 :(得分:2)
对我来说,即使Compile-on-save工作(Visual Studio 2013),如果其他人试图运行Web项目,它也不会自动生成javascript文件。在我的项目中,我包含了*.js
个文件和*.js.map
个文件,以防止IIS在修改*.ts
文件时不使用新版本。但是这些文件不包含在源代码管理中。
我这样做是因为我在csproj
项目文件的末尾包含了以下行:
<Target Name="AfterBuild">
<Exec Command="tsc.exe --sourcemap _core.ts" WorkingDirectory="$(MSBuildProjectDirectory)\js" />
</Target>
其中_core.ts
是js
文件夹中的一个文件 - 我确信 - 在其开头直接或间接通过标题引用所有文件。
/// <reference path="_dependent.ts" />
...
以便tsc.exe
处理所有相关文件。
答案 5 :(得分:1)
除了上述步骤之外,如果编译时保存尚未生效,请将项目标记为启动项目(在VS 2013解决方案资源管理器上,右键单击,设置为启动项目)。
此解决方案由nicholasjgreen在Codeplex上发现,并发布在http://typescript.codeplex.com/wikipage?title=Compile-on-Save的评论中。
答案 6 :(得分:1)
我通过将函数添加到Typescript文件的末尾来解决了这个问题。当新的&#39;新的&#39;函数是在页面顶部键入的(在其他函数之前)但是当我将它添加到最后一个函数下面时它才起作用。只花了三个小时!
答案 7 :(得分:0)
你是否使用drag'n'drop添加了打字稿文件? 然后可能是文件的构建操作具有错误的值。使用文件的属性窗口(F4或alt + enter)并验证那里的构建操作......
答案 8 :(得分:0)
使用以下方法更容易找到此功能。 (VS2015)