集成到 ASP.NET Webdeploy Publish 的 JavaScript 缩小器(例如 YUI)

标签 javascript asp.net msbuild

我有一个使用 Yahoo YUI 缩小的 javascript 文件。当我“发布”Web 应用程序项目时,我希望它只复制 .min.js 文件而不是原始文件。我可以使用预构建事件来创建缩小版本,但如何防止“发布”复制非缩小文件?

我想我可以从项目中“排除”原始的非缩小文件,但这没有帮助,因为我想通过 VS 2010 编辑脚本文件,但是当我发布时,我希望先运行缩小器,然后再运行只发布那个。

感谢任何指点

最佳答案

您可以使用 MSBuild Community Task 项目和 Exec 任务来执行此操作。这是一个例子。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <yuiCompressor>java -jar Libraries\yuicompressor-2.3.6.jar</yuiCompressor>
  </PropertyGroup>
  <PropertyGroup>
    <Major>1</Major>
    <Minor>0</Minor>
    <Build>0</Build>
    <Revision>1</Revision>
    <BindMinor>0</BindMinor>
    <BindBuild>0</BindBuild>
    <BindRevision>0</BindRevision>
  </PropertyGroup>
  <ItemGroup>
    <CssFiles Include="css\site.css" />
    <CssFiles Include="css\gray.css" />
    <JsFiles Include="scripts\base.js" />
    <JsFiles Include="scripts\lib.js" />
    <JsFiles Include="scripts\project.js" />
  </ItemGroup>
  <Target Name="Minimize" DependsOnTargets="Version">
    <!-- CSS Merge and Minimize -->    
    <Merge Mode="TextLine"
      SourceFiles="@(CssFiles)"
      DestinationFile="merged.css" />
    <Exec Command="$(yuiCompressor) --type css merged.css -o css\project-$(Revision).css" />
    <!-- js Merge and Minimize -->
    <Merge Mode="TextLine"
      SourceFiles="@(JsFiles)"
      DestinationFile="merged.js" />
    <Exec Command="$(yuiCompressor) --type js merged.js -o scripts\project-$(Revision).js" />
    <Delete Files="merged.css" />
    <Delete Files="merged.js" />
  </Target>
</Project>

关于集成到 ASP.NET Webdeploy Publish 的 JavaScript 缩小器(例如 YUI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3877016/

相关文章:

.net - TFS 2010 为 .Net 3.5 应用程序创建 .Net 4.0 XmlSerializers DLL

javascript - 如何使用 JQuery 存储从 URL 获取的 JSON 值?

javascript - 我需要扩展悬停显示 block 的最简单的 js 代码是什么,以便它在那里停留一秒钟

php - 页面一直自动刷新

c# - ASP .NET WebAPI 无法访问路由

msbuild - 通过 PackageReference 使用包含 .targets 文件的 nuget 包

c# - 使用 Microsoft.Build API 构建项目

javascript - 从组件外部调用 Vue.js 组件方法

javascript - 获取 attr 表单 <a href>

c# - 递归 ASP 用户控件