在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了。
YUI Compressor 是一个用来压缩 JS 和 CSS 文件的工具,采用Java开发。
使用方法:
//压缩JS
java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v src.js > packed.js
//压缩CSS
java -jar yuicompressor-2.4.2.jar --type css --charset utf-8 -v src.css > packed.css
通用参数:
-h, --help 显示帮助信息
--type <js|css> 指定输入文件的文件类型
--charset <charset> 指定读取输入文件使用的编码
--line-break <column> 在指定的列后插入一个 line-bread 符号
-v, --verbose 显示info和warn级别的信息
-o <file> 指定输出文件。默认输出是控制台。
javascript专用参数:
--nomunge 只压缩, 不对局部变量进行混淆。
--preserve-semi 保留所有的分号。
--disable-optimizations 禁止优化。
举例:
将yuicompressor-2.4.2.jar 放在c:下,将editor.js放在c:盘下。
将editor.js进行压缩
命令为:
C:\java -jar yuicompressor-2.4.2.jar editor.js -o editor2.js
参数说明:
yuicompressor-2.4.2.jar 为工具包jar
editor.js为要压缩的js
-o editor2.js为压缩完成后的文件名
压缩率:
对resources下js文件夹里163个js文件进行压缩
压缩前4.13MB
压缩后2.89MB
混淆率:
较高
一个windows下的批量处理脚本:
@echo off
::设置YUI Compressor启动目录
SET YUIFOLDER=C:
::设置你的JS和CSS根目录,脚本会自动按树层次查找和压缩所有的JS和CSS
SET JSFOLDER=D:\1
echo 正在查找 JavaScript, CSS ...
chdir /d %JSFOLDER%
for /r . %%a in (*.js *.css) do (
@echo 正在压缩 %%~a ...
@java -jar %YUIFOLDER%\yuicompressor-2.4.2.jar --charset UTF-8 %%~fa -o %%~fa
)
echo 完成!
pause & exit