• 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)来获取值。

  • 相关阅读:
    CodingSouls团队-个人博客(八)
    CodingSouls团队-个人博客(七 )
    vuedraggable
    idea创建springboot(脚手架创建)
    线上环境解决nginx访问laravel除了根目录全是404的问题
    前端使用工具网站
    阿里云内容协作平台(ccp)的基本使用
    photoshop CS6修改启动界面
    laravel 增强代码提示功能插件(barryvdh / laravel-ide-helper)
    laravel代码调试工具(laravel/telescope)
  • 原文地址:https://www.cnblogs.com/rentj1/p/2946568.html
Copyright © 2020-2023  润新知