Visual Studio - 构建之前 - TypeScript编译

时间:2013-01-18 16:37:19

标签: visual-studio asp.net-mvc-4 build-process typescript

有没有办法设置“BeforeBuild”步骤,将每个TypeScript文件编译为特定目录中自己的Javascript文件?例如,我希望所有TypeScript文件都能编译到解决方案中'\ tsbuild'目录中的单个Javascript文件。

现在,编译器正在将所有TypeScript文件合并到指定目录中的一个Javascript文件中 - 如下所示:

  <Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; --out @(TypeScriptCompile ->'&quot;$(ProjectDir)tsbuild\buildall.js&quot; &quot;%(fullpath)&quot; ', ' ')" />
  </Target>

然后,一旦它们位于一个目录中,目标就是配置Bundle Configuration以获取它们并在发布期间将它们缩小。另一个目的是帮助开发期间进行故障排除。

2 个答案:

答案 0 :(得分:3)

一旦0.8.2.0发布(很快!),您就可以将目录传递给--out以获得所需的行为。目前,没有一种特别优雅的方法可以做到这一点。

答案 1 :(得分:2)

随着TypeScript 0.8.2的发布,我做了一些构建更改,现在让它按照我想要的方式工作。

有关编译和保存的详细信息,请查看:http://typescript.codeplex.com/wikipage?title=Compile-on-Save

首先我修改了我的* .csproj,添加:

  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptIncludeComments>true</TypeScriptIncludeComments>
    <TypeScriptSourceMap>true</TypeScriptSourceMap>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptIncludeComments>false</TypeScriptIncludeComments>
    <TypeScriptSourceMap>false</TypeScriptSourceMap>
  </PropertyGroup>
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" />

然后,我创建了一个帖子构建步骤,使用此帖子复制我的文件 https://stackoverflow.com/a/585188/1220302

将其添加到帖子构建

for /R "$(ProjectDir)modules\" %%f in (*.js, *.map) do copy %%f "$(ProjectDir)build\"

我希望有人帮助... =)