【问题标题】:Visual Studio - Before Build - TypeScript CompilingVisual Studio - 构建之前 - TypeScript 编译
【发布时间】:2015-03-05 09:33:54
【问题描述】:

有没有办法设置“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 以在发布期间拾取并缩小它们。另一个目的是帮助在开发过程中进行故障排除。

【问题讨论】:

  • VS typescript 扩展不是已经这样做了吗?
  • 是和否...它在文件所在的同一目录中编译它。我希望它编译到一个中心位置。

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


【解决方案1】:

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

【讨论】:

  • comment preservation problems 会在 0.8.2.0 中修复吗?或者对修复可能需要多长时间有任何粗略的想法?我确定它在优先级列表中的位置很低。
  • 注释保存在 0.8.2.0 中会变得更好,但是当新的解析器在以后的版本中上线时,它会得到很大的改进(我们的目标是 vanilla JS 可以编译成相同的格式/厘米)。
【解决方案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\"

我希望对某人有所帮助.. =)

【讨论】:

    猜你喜欢
    • 2016-09-12
    • 2012-09-25
    • 2017-08-28
    • 2023-03-11
    • 2020-06-06
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2012-10-18
    相关资源
    最近更新 更多