【发布时间】:2013-05-21 08:44:59
【问题描述】:
我正在使用 TypeScript 0.8.3 并试图让 compile on save 工作。
我的设置有点不同,但它应该真的可以工作。请记住,当我构建项目时它可以正常工作,而不是在保存时:
显然第一件事:工具>选项>文本编辑器>TypeScript>项目>保存时编译设置为“自动编译作为项目一部分的TypeScript文件”
然后在我的 .csproj 文件中
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
<TypeScriptIncludeComments>true</TypeScriptIncludeComments>
<TypeScriptGeneratesDeclarations>false</TypeScriptGeneratesDeclarations>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
<TypeScriptOutFile>application.js</TypeScriptOutFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
<TypeScriptIncludeComments>false</TypeScriptIncludeComments>
<TypeScriptGeneratesDeclarations>false</TypeScriptGeneratesDeclarations>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
<TypeScriptOutFile>application.js</TypeScriptOutFile>
</PropertyGroup>
<!-- this imports the code below from Microsoft.Typescript.targets -->
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" />
我将 Microsoft.TypeScript.targets 更改如下:
<Target Name="CompileTypeScript">
<Message Text="Compiling TypeScript files" />
<Message Text="Creating response file typescriptcompiler.input" />
<WriteLinesToFile
File="typescriptcompiler.input"
Lines=""C:\MyProject\MyProject.Web\Scripts\_references.ts"" <!-- recursively gets individual file paths referenced therein -->
Overwrite="true"
Encoding="Unicode"/>
<Message Text="Executing tsc $(TypeScriptBuildConfigurations) @typescriptcompiler.input" />
<Exec Command="tsc $(TypeScriptBuildConfigurations) @typescriptcompiler.input" />
<Delete Files="typescriptcompiler.input"/>
</Target>
但我仍然需要重建项目以生成我的单曲application.js。保存单个文件不起作用。
注意:当尝试一次编译太多文件时,我必须更改 Microsoft.Typescript.targets 以解决 tsc 使用的 WScript 库中的缓冲区错误。基本上解决方法是写入文件然后传递给编译器。
任何想法为什么它不会在保存时重新编译?
Microsoft.Typescript.targets 中有这一行,但它似乎没有做任何事情我尝试删除这两个条件,所以它总是正确的,保存时仍然没有编译。这应该做什么? :
<TypeScriptCompileOnSaveEnabled Condition="'$(TypeScriptEnableCompileOnSave)' != 'false' and '$(TypeScriptOutFile)' == ''">true</TypeScriptCompileOnSaveEnabled>
【问题讨论】:
标签: typescript