使用 msbuild 任务将多个 jscript 文件合并为一个文件?

发布于 2024-09-09 09:41:09 字数 289 浏览 9 评论 0原文

我正在使用 Microsoft Ajax Minifier 将 file1.js 转换为 file1.min.js。现在我想将 file1.min.js 和 file2.min.js 合并到 files-merged.min.js 中。

我发现了几个开源的 msbuild 项目,但没有关于如何使用它们的文档!

我正在使用 Visual Studio 2010,这是 Ajax Minifier 可以做的事情吗?如果不能,您有关于如何做的任何提示吗?

我希望这是一个自动化的过程,每次构建解决方案时都会完成一些操作。

I am using Microsoft Ajax Minifier to convert file1.js to file1.min.js. Now I would like to take file1.min.js and file2.min.js and merge them into files-merged.min.js.

I have found several open source msbuild projects but with no documentation on how to use them!

I am using Visual Studio 2010, is this something Ajax Minifier can do, if not do you have any tips on how to do it?

I want this to be an automated process, something done each time I build the solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

清音悠歌 2024-09-16 09:41:09

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

  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 注入。

Within MSBild solution you can use at the least three approaches.

  1. Execute copy command (simply to understand and support, may affects
    build performance in case of much calls perfomed);
  2. Use ReadLinesFromFile/WriteLinesToFile msbuild tasks (simply enough, but resulting file will lose formatting)
  3. Use .NET File.ReadAllText/WriteLinesToFile (good result, but may be complicated in some cases)

Executing copy command

To merge with copy command you should add something like this into your target:

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

In most cases it should be enough.

Using ReadLinesFromFile/WriteLinesToFile msbuild tasks

<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" />

This example illustrates how to use native msbuild facilities to merge both files. Unfortunately, in that case we're loosing file formatting.

Using .NET File.ReadAllText() and 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" />

This approach fast and accurate, but uses some kind of .NET injection.

上课铃就是安魂曲 2024-09-16 09:41:09

我按照这篇文章做到了:

http://encosia.com/2009/05/20/automatically-minify-and-combine-javascript-in-visual-studio/

我不想使用 JSMin 工具,因为我已经有 AJAX Minifier所以我使用 JSMin 只是为了合并文件。 Minifier 可以处理文件合并吗?

I did it by following this article:

http://encosia.com/2009/05/20/automatically-minify-and-combine-javascript-in-visual-studio/

I would prefer not to use the JSMin tool as I already have AJAX Minifier so I use JSMin just to merge the files. Can Minifier handle the merging of files?

桃扇骨 2024-09-16 09:41:09
C:\Progra~1\Microsoft\Micros~1\AjaxMin.exe js1.js js2.js -o jscombine.js -clobber
C:\Progra~1\Microsoft\Micros~1\AjaxMin.exe js1.js js2.js -o jscombine.js -clobber
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文