`
uiiang
  • 浏览: 30539 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用批处理和yuicompressor给js打包

阅读更多
项目中需要对javascript进行打包和压缩,我选用了yuicompressor

yuicompressor可以压缩JS和CSS文件,去除文件中的无用空格、换行和注释。大大的减小JS和CSS文件的体积。

简单的命令如下

java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -o uiiang.js table.js


--type指定要打包的文件类型,可选的有 js和css
--charset 指定字符集
-o 指定输出的文件名,如果不指定这个参数将会把压缩后的内容输出到命令行上
最后的table.js是要打包的源文件

不过这样压缩有一个缺点,只能一个一个文件的进行压缩,所以使用bat进行批处理压缩

建立一个compresjs.bat文件,内容如下

(dir %1 /aa /b /s | findstr /e /c:"js") >tmp.txt
for /f %%i in (tmp.txt) do java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -o %%i.tmp %%i & copy %%i".tmp" %%i & del %%i".tmp"


运行这个bat文件,会自动寻找本文件所在目录下所有子文件夹中的.js文件,进行压缩并覆盖源文件。

compresjs.bat使用的方法只是对文件进行压缩,如果有10个源文件,还会压缩成10个文件,并没有进行打包。 我们可以对他进行更进一步的处理,把这10个源文件打包压缩成1个文件,就像ext-all.js那样。

建立一个packagejs.bat文件,内容如下

for /r ..\WebContent\js %%i in (*.js) do type %%i>>uiiang-debug.js
java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -o uiiang.js uiiang-debug.js


在packagejs.bat中,先将..\WebContent\js下的所有JS文件内容合并到uiiang-debug.js文件中,然后再使用yuicompressor对uiiang-debug.jsp压缩成uiiang.js,这样就可以得到一个经过压缩并包含全部.js文件的代码了。

packagejs.bat中使用的方法有一个缺点,那就是它在合并js文件时的顺序,是按照文件夹及子文件夹还有js文件的排列顺序进行合并的,也就是按文件名顺序排列。但是在我们实际项目中,一般情况下JS文件的引用是要指定一个特定的加载顺序,不然的话就会报错。所以还要对packagejs.bat进行再进一步的改造。

首先要建立一个列表文件dir.txt

..\WebContent\js\widgets\WidgetInit.js
..\WebContent\js\utils\Cache.js
..\WebContent\js\common\GlobalConstant.js
..\WebContent\js\common\GlobalVariable.js
..\WebContent\js\common\GlobalFunc.js
..\WebContent\js\core\Initialize.js


在这个文件中,按照JSP中指定的JS文件加载顺序写好文件的路径
再修改packagejs.bat
for /f %%i in (dir.txt) do type %%i >> uiiang-debug.js
java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -o uiiang.js uiiang-debug.js


执行这个packagejs.bat文件后,批处理命令会自动读取dir.txt并按照你指定的顺序逐行取出.js文件的路径进行,把文件内容合并到uiiang-debug.js中。

另外要注意的一点就是在dir.txt中,一定要把所需要打包压缩的的JS文件路径全部列出来,因为新的pakagejs.bat不会再自动寻找全部的JS文件了,如果有遗漏就只好报错

至此,批处理压缩打包js文件的工作就完成了,还可以将代码中的.JS换成.css对CSS文件进行打包,当然yuicompressor的--type也要改成css。
0
1
分享到:
评论
1 楼 jindw 2009-06-18  
看看这个吧:

http://jsicdn.appspot.com

相关推荐

    使用脚本+yuicompressor对js,css文件打包.pdf

    标题和描述中提到的技术点主要围绕如何使用批处理脚本结合yuicompressor工具来压缩和打包JavaScript(js)以及CSS文件。yuicompressor是一款高效的压缩工具,能够去除文件中的空格、换行和注释,从而减小文件体积,...

    js压缩工具 批处理

    在提供的文件列表中,“Yui Compressor Java压缩实践.htm”可能是一个介绍如何使用YUI Compressor进行Java压缩的教程文档,而“使用YUI Compressor压缩JS和Css,批处理,右键,注册表,打包.htm”很可能是更详细的指南,...

    YUI JS CSS 打包工具

    YUI JS CSS 打包工具是一款高效的前端资源优化工具,主要针对JavaScript (JS) 和 Cascading Style Sheets (CSS) 文件进行压缩和合并,以提升网页加载速度和整体性能。这款工具由雅虎(Yahoo!)开发,是其开源项目的...

    ant yui 对应所需的jar

    然后,在Ant的build.xml文件中,你可以创建一个新的目标(target),使用`java`任务来调用YUI Compressor的命令行接口,对你的JavaScript和CSS文件进行压缩。 以下是一个简单的示例,展示了如何在Ant中配置YUI ...

    JSA脚本压缩工具

    不过,随着时间的推移,市场上出现了更多功能强大且更新频繁的JavaScript压缩工具,如Google的Closure Compiler、UglifyJS以及YUI Compressor等。这些工具通常提供了更高级的优化选项和更好的社区支持,但如果你对JS...

    jqueryplugins

    5. **yuicompressor.jar**:这是一个YUI Compressor的Java版本,常用于压缩和优化JavaScript和CSS文件,减小文件大小,提高网页加载速度。 6. **JQuery.backgroundCanvas.js** 和 **JQuery.layoutHelpers.js**:...

Global site tag (gtag.js) - Google Analytics