【发布时间】:2014-01-03 01:20:37
【问题描述】:
我希望停止在 TFS 源代码控制中包含生成的 JavaScript 文件,但我还没有设法让编译器在构建中运行。
我已经关注this chap's example并编辑了项目文件给我:
<ItemGroup>
<TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
</ItemGroup>
<Target Name="BeforeBuild">
<Message Text="Before Build" Importance="high" />
<CallTarget Targets="TypeScriptBuild"/>
</Target>
<Target Name="TypeScriptBuild" Inputs="@(TypeScriptCompile)" Outputs="%(Identity).Dummy" Condition="'$(CompileTypeScript)'=='true'">
<Message Text="Building typescript file - @(TypeScriptCompile)" Importance="high" />
<Exec Command=""$(MSBuildProgramFiles32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\tsc" -target ES3 "@(TypeScriptCompile)"" />
</Target>
我已更改 tsc 可执行文件所在的文件位置并删除了 TypeScript 版本信息,但它对我没有任何作用。我是这个构建东西的新手,所以会很感激任何帮助,或者关于如何调试它的提示。
编辑 1 已删除
<ItemGroup>
<TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
</ItemGroup>
因为它是多余的 - 这是为项目中的每个 TypeScript 文件单独添加的。
我得到的唯一警告是关于不确定的单元测试。我假设<Message Text="Before Build" Importance="high" /> 会产生某种日志消息,但我在任何地方都看不到它。
编辑 2 通过放置
使其在 Visual Studio 中本地工作<Target Name="BeforeBuild">
<Message Text="Compiling typescript...">
</Message>
<Exec Command=""$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript\tsc" -target ES3 @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
在 .csproj 文件的末尾。由于某种原因,这在 TFS 构建时不起作用。如果我将 TypeScript 编译器文件位置更改为无意义的内容,它会抱怨,但是当它正确时,不会生成任何 JavaScript 文件。
【问题讨论】:
-
这是我用于构建/开发的github.com/basarat/grunt-ts
-
您是否收到任何可能作为线索的构建消息或警告?
标签: visual-studio-2012 msbuild typescript