使用Visual Studio 2013保存时编译Typescript?
我无法在保存时编译以使用VS2013。我安装了VS2013,重新安装了TS 0.9.0.1,在“工具”、“选项”下,键入script/Project/General,我选中了“保存时编译”两个选项。但是当我向我的项目中添加一个新的TS文件,然后编辑并保存它时,更改不会反映在相关的.js文件中使用Visual Studio 2013保存时编译Typescript?,typescript,visual-studio-2013,Typescript,Visual Studio 2013,我无法在保存时编译以使用VS2013。我安装了VS2013,重新安装了TS 0.9.0.1,在“工具”、“选项”下,键入script/Project/General,我选中了“保存时编译”两个选项。但是当我向我的项目中添加一个新的TS文件,然后编辑并保存它时,更改不会反映在相关的.js文件中 我做错什么了吗?还有其他人有这个问题吗?您是否使用拖放添加了typescript文件? 那么可能是文件的构建操作具有错误的值。使用文件的属性窗口(F4或alt+enter)并验证那里的构建操作…我遇到了以下
我做错什么了吗?还有其他人有这个问题吗?您是否使用拖放添加了typescript文件?
那么可能是文件的构建操作具有错误的值。使用文件的属性窗口(F4或alt+enter)并验证那里的构建操作…我遇到了以下情况:项目是使用vs2012和早期版本的typescript创建的。我升级到VS2013,最新版本的typescript(0.9.1.1)和脚本未在保存时编译
然后我从我的项目中排除了typescript文件,并使用AddExistingFile再次添加了它。之后,typescript文件在保存时编译良好 在上述步骤旁边,如果保存时编译尚未工作,请将您的项目标记为启动项目(在VS 2013解决方案资源管理器上,右键单击,设置为启动项目)
此解决方案由nicholasjgreen在Codeplex上找到,并发布在评论上。请尝试按照以下说明操作: 我也一直在努力想办法解决这个问题,但我想我已经解决了。我认为部分混淆来自WebEssentials和新的TypeScript插件集成方法的不同 我是TypeScript的早期采用者,并在2012年使用WebEssentials工具在save上编译。我将其配置为生成.js和.min.js文件,这两个文件都自动添加到项目中 升级到VS 2013时,我希望从内置的TypeScript支持中获得相同的功能,但它并不存在(据我所知) 相反,我认为2013年的集成工具涵盖了开发和生产工作流 以上说明为您设置了构建时编译,该编译应在发布期间进行。在开发过程中,“保存时编译”功能会在磁盘上生成文件,但不会将它们添加到项目中
然后,我意识到生成的文件实际上不需要像以前那样成为项目的一部分,以及为什么它比WebEssentials解决方案更好(不包括缺少预览窗口!)。TypeScript 0.9.5保存时编译在我升级到WebEssentials 1.85(2月14日)后,在现有项目上停止工作。我重新安装了两者都没有用,但在看到它为新项目工作后,我尝试在我的csproj中改变这一行,从这个
<Project ToolsVersion="4.0" />
到
神奇的是,保存时编译再次开始工作。为我解决了这个问题:
对我来说,即使“保存时编译”(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>
因此,
tsc.exe
也会处理所有依赖文件。我通过将函数添加到Typescript文件的末尾解决了这个问题。当在页面顶部键入“new”函数(在其他函数之前)时,它不起作用,但当我在上一个函数下面添加它时,它起作用了。只花了三个小时 使用以下方法更容易找到此功能。(VS2015)
谢谢你的建议。构建操作被设置为TypeScriptCompile,我认为这是正确的。我的一些脚本具有该类型,其他脚本具有CodeAnalysisDictionary-这两种构建类型都适用于我。原来这是一个新手犯的错误。我没有按照这里定义的说明让TS在保存时编译来处理我的项目:我认为这是一个bug。VS2013没有为我编译typescript文件。我仍然在2012年编辑和保存我的文件。是的,看起来它需要以这种方式添加一个文件,以便它知道如何使用必要的引用更新项目文件。我相信这会使它在将构建操作设置为TypeScriptCompile时起作用,正如它在为我添加新的TypeScript文件时所做的那样,排除和包含是不够的。我所做的是从project中删除了.ts文件,并使用“复制和粘贴”从头开始重新创建它们。请检查文件的属性。即使在重新添加时,该文件也没有正确地将构建操作设置为“TypeScriptCompile”……至少在我的文件不再编译的情况下是这样。先生,您真是太好了!按照链接中的说明编辑csproj文件对我很有用。更具体地说,添加
PropertyGroup
和Import
目标部分(否则我会遇到intellisense问题,即使使用typescript 1,也不会编译任何内容)。
<Target Name="AfterBuild">
<Exec Command="tsc.exe --sourcemap _core.ts" WorkingDirectory="$(MSBuildProjectDirectory)\js" />
</Target>
/// <reference path="_dependent.ts" />
...