谷歌关闭和MSBUILD

nol*_*ogo 2 msbuild

希望用msbuild实现谷歌关闭.我找到了一些解决方案,但努力让它发挥作用.关于如何在构建期间读取多个js文件并创建.min版本的任何建议?

谢谢

编辑:从下面的答案,我能够进行一些改动,以完全实现所推荐的,但在一个简单的形式这里是我写的:

  <ItemGroup>
    <JSMin Include="$(OutputPath)Scripts\*.js"/>
  </ItemGroup>
  <Target Name="AfterBuild" Inputs="@(JSMin)" Outputs="@(JSMin ->'%(Directory)%(Filename).min%(Extension)')">
    <Exec Command="java -jar C:\temp\compiler.jar --js %(JSMin.Identity) --js_output_file C:\temp\%(JSMin.Filename).min.js"/>
  </Target>
Run Code Online (Sandbox Code Playgroud)

稍后输出路径将更改为动态路径.

非常感谢

Tim*_*son 6

我没有看过Google Closure,但你可以通过<Exec>任务运行任何命令:

<Project DefaultTargets="build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="build">
        <Exec Command="echo Hello world"/>
    </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

编辑:对一组文件运行命令:

<Project DefaultTargets="build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <JSMin Include="jquery.js"/>
    <JSMin Include="somethingelse.js"/>
  </ItemGroup>

  <Target Name="build" Inputs="@(JSMin)" Outputs="@(JSMin->'%(Directory)%(Filename).min%(Extension)')">
    <Exec Command="java -jar C:\temp\compiler.jar --js %(JSMin.Identity) --js_output_file %(JSMin.Directory)%(JSMin.Filename).min%(JSMin.Extension)"/>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)