完善 TBCompressor 对 CSS 文件的压缩过程
作者:屈超(Chappell.Wat) 发布时间:November 26, 2009 分类:程式::五代
玉伯同学近期发布了 Closure Compiler 和 YUI Compressor 的右键菜单插件,
而之前基于 YUI Compressor 的同类型工具被称为“TBCompressor”,
(为了区别真正的 YUI Compressor 我用了本文的标题)
一直以来大家伙儿都用这个组合来压缩 JS 和 CSS 文件,
基本上没有什么问题——
除了作者在 compressor.cmd 中所注释的这种情况:
“对于 css 文件,只有(略),情况很少,手工处理”。
那么这次的完善就是针对上述情况而作,
将以前需要手工完成的内容继续交由 cmd 来处理。
请编辑 compressor.cmd 并找到如下代码:
if "%~x1" == ".js" (
copy /y "%RESULT_FILE%" "%RESULT_FILE%.swp" > nul
"%JAVA_HOME%\bin\native2ascii.exe" -encoding GB18030 "%RESULT_FILE%.tmp" "%RESULT_FILE%"
del /q "%RESULT_FILE%.tmp"
)
替换为:
copy /y "%RESULT_FILE%" "%RESULT_FILE%.tmp" > nul
"%JAVA_HOME%\bin\native2ascii.exe" -encoding GB18030 "%RESULT_FILE%.tmp" "%RESULT_FILE%"
del /q "%RESULT_FILE%.tmp"
REM 5. 对于 css 文件,替换 \uxxxx 为 \xxxx by quchao
if "%~x1" == ".css" (
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "delims=" %%u IN ('more /s "%RESULT_FILE%"') DO (IF %%u NEQ "" SET "u=%%u" & SET "u=!u:\u=\!" & >>U ECHO,!u!)
SETLOCAL DISABLEDELAYEDEXPANSION
MOVE U "%RESULT_FILE%"
)
以上代码基于 YUI Compressor 的右键菜单插件 ,
事实上修改方法同样适用于 TBCompressor ,
明早我将知会玉伯。
已知会他,
他选择使用一个软件来实现替换过程,
最终效果一样,
那么大伙儿自行选择吧。
比较懒的同学可以直接下载不才修改后的版本:
DropBox 下载:compressor.cmd
下载后直接覆盖同名文件即可。