zoukankan      html  css  js  c++  java
  • VS发布Web时自动调用YUICompressor批量压缩JS、CSS

    在Visual Studio中通过修改发布配置文件,可以在发布Web时自动调用YUICompressor批量压缩项目中JS和CSS。这种方式的优点,一是不需要在项目的js、css文件夹中单独建立debug子文件夹来存放未经压缩的文件,二是使用debug模式发布时不会进行压缩方便调试。具体方法如下:

    1 安装JRE,下载YUICompressor,并解压(如:E:\工具\yuicompressor)

    2 新建Compressor.bat文件内容为:

    @echo off
    if "%1" == "" goto exit
    pushd "%1"
    echo 正在压缩Css文件
    for /r %%i in (*.css) do call "java.exe" -jar E:\工具\yuicompressor\yuicompressor.jar -o %%i %%i
    echo 正在压缩js文件
    for /r %%i in (*.js) do call "java.exe" -jar E:\工具\yuicompressor\yuicompressor.jar -o %%i %%i
    :exit
    exit


    3 修改项目的发布配置文件, 项目的发布配置文件名为 <profilename>.pubxml,位于项目文件夹下的properties\PublishProfiles文件夹

    增加下面的内容:

    <Target Name="YUICompressor" AfterTargets="CopyAllFilesToSingleFolderForPackage" Condition="'$(ConfigurationName)'=='Release'">
    <Message Text="调用YUICompressor压缩CSS、JS" Importance="high" />
    <Exec Command="call E:\工具\Compressor.bat $(ProjectDir)obj\$(ConfigurationName)\Package\" />
    </Target>

    注: E:\工具\Compressor.bat路径根据需要替换。

    完成上面的工作后在“解决方案资源管理器”中右击要发布的项目点击“发布”后就可以在项目发布文件夹中看到已经压缩过的CSS、JS了

     

    2013.3.17更新:

    VS2010中没有pubxml文件,可以在项目的根目录下创建一个{ProjectName}.wpp.targets文件,如果你的项目文件名是WebFromApplication.csproj那么就是WebFromApplication.wapp.targets。它是一个MSBuild 构建文件(pubxml文件也是一个MSBuild构建文件),我们可以使用它来扩展Visual Studio生成/发布过程。

    内容如下:

    <?xml version="1.0" encoding="utf-8"?>
    <Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
    <PropertyGroup>
    <YUICompressor>E:\工具\yuicompressor\yuicompressor.jar</YUICompressor>
    </PropertyGroup>
    <ItemGroup>
    <JavaScriptFiles Include="$(ProjectDir)$(_PackageTempDir)\**\*.js"/>
    </ItemGroup>
    <Target Name="Compressor" AfterTargets="CopyAllFilesToSingleFolderForPackage" >
    <Message Importance="high" Text="YUICompressor JavaScriptFiles" ></Message>
    <Exec Command="java.exe -jar $(YUICompressor) -o %(JavaScriptFiles.Identity) %(JavaScriptFiles.Identity)" />
    </Target>
    </Project>

    说明:

    1 在这个MSBUILD构建文件中使用<ItemGroup>元素来选取需要压缩的文件集合,来代替上例中的bat文件。在后面的Exec任务使用%(JavaScriptFiles.Identity)来表示选取集合中当前执行压缩的单个文件。其中$(ProjectDir)和$(_PackageTempDir)是MSBuild预定义的属性,分别表示项目根目录位置和相对项目根目录的临时打包文件的位置。

    2 使用<PropertyGroup>元素来定义yuicompressor.jar文件的位置,在后面Exec 任务中使用$(YUICompressor)来获取值。

  • 相关阅读:
    编程原理
    VMware
    window的composer安装
    微信小程序支付的坑
    php 生成二维码
    接口文档在线编辑
    mysql函数的使用
    linux的反斜扛的问题
    require_once中使用./和../时遇到的坑
    微信测试账号申请后,登陆空白的现象
  • 原文地址:https://www.cnblogs.com/rentj1/p/2946568.html
Copyright © 2011-2022 走看看