使用MSBuild任务将多个JScript文件合并为一个文件?

4
我正在使用Microsoft Ajax Minifier将file1.js转换为file1.min.js。现在我想将file1.min.js和file2.min.js合并成files-merged.min.js。
我找到了几个开源的msbuild项目,但是没有关于如何使用它们的文档!
我正在使用Visual Studio 2010,Ajax Minifier能做到这一点吗?如果不能,你有什么提示如何做到?
我希望这是一个自动化的过程,每次构建解决方案时都会执行。

你可以在这里找到答案:http://www.codeproject.com/KB/aspnet/combineMinify.aspx - Aleksandar Vucetic
3个回答

3

在MSBuild解决方案中,您至少可以使用三种方法。

  1. 执行复制命令(易于理解和支持,在进行多次调用时可能会影响构建性能);
  2. 使用ReadLinesFromFile/WriteLinesToFile msbuild任务(足够简单,但生成的文件将失去格式)
  3. 使用.NET File.ReadAllText/WriteLinesToFile(效果很好,但在某些情况下可能会很复杂)

执行复制命令

要与复制命令合并,您应该将以下内容添加到目标中:

<Exec Command="COPY /b file1.min.js + file2.min.js files-merged.min.js" />

在大多数情况下,这应该足够了。

使用ReadLinesFromFile/WriteLinesToFile msbuild任务

<ItemGroup>
  <SourceFiles Include="file1.min.js;file2.min.js" />
</ItemGroup>

<ReadLinesFromFile File="%(SourceFiles.Identity)">
  <Output TaskParameter="Lines" ItemName="FileLines" />
</ReadLinesFromFile>

<WriteLinesToFile File="files-merged.min.js" Lines="@(FileLines)" Overwrite="true" />

这个例子展示了如何使用本地的msbuild工具来合并两个文件。不幸的是,这种情况下我们会失去文件格式。

使用.NET File.ReadAllText()和msbuild WriteLinesToFile

<ItemGroup>
  <SourceFiles Include="arrays.cmd;cp.cmd" />
  <FileLines Include="$([System.IO.File]::ReadAllText(%(SourceFiles.Identity)))" />
</ItemGroup>

<WriteLinesToFile File="test.out" Lines="@(FileLines)" Overwrite="true" />

这种方法快速而准确,但使用了某种.NET注入。


2

1
C:\Progra~1\Microsoft\Micros~1\AjaxMin.exe js1.js js2.js -o jscombine.js -clobber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接