在压缩之前连接CSS和JS?工具?最佳实践?

时间:2009-09-11 21:24:41

标签: javascript css yui-compressor

我正在制作一个单页网站,其中包含大约十二个.js文件,也许还有六个.css文件。

大多数.js文件都是jQuery插件。 除了基本的css文件之外,CSS文件用于相应的jQuery插件。

YUI Compressor似乎是压缩CSS和JS文件的最爱。但是,它只压缩单个文件。

我还希望将我的文件和(理想情况下)结合使用一个.js和一个.css文件(都是压缩的)。

是否有任何首选工具允许您自动将.js和.css文件合并到一个文件中,以便可以通过YUI压缩器运行?

5 个答案:

答案 0 :(得分:3)

如果你知道一点,php,我发现这是最好的方式:http://www.thedanglybits.com/2007/06/21/minify-your-external-javascript-and-css-with-php/

答案 1 :(得分:2)

您可能想要查看链轮(http://www.getsprockets.com/)。

答案 2 :(得分:2)

前几天我才问这个问题。在厌倦了网络之后,我想出了这个hackish(windows批处理文件)解决方案。

@echo off
set TUNA_ROOT=C:\path\to\webroot
set YUI_COMPRESSOR_PATH=C:\path\to\yuicompressor-2.4.2\build
set TEMP_JS_FILE=%TUNA_ROOT%\scripts\all_scripts_temp.js
set OUTPUT_JS_FILE=%TUNA_ROOT%\scripts\tuna_min.js
if exist "%TEMP_JS_FILE%" del "%TEMP_JS_FILE%"
if exist "%OUTPUT_JS_FILE%" del "%OUTPUT_JS_FILE%"
type "%TUNA_ROOT%\Scripts\MicrosoftAjax.js" >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
type "%TUNA_ROOT%\Scripts\MicrosoftMvcAjax.js" >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
rem ...and so on...
java -jar "%YUI_COMPRESSOR_PATH%\yuicompressor-2.4.2.jar" -v --charset utf-8 -o "%OUTPUT_JS_FILE%" "%TEMP_JS_FILE%"
if exist "%TEMP_JS_FILE%" del "%TEMP_JS_FILE%"

但如果有更自动化的做事方式,我真的很喜欢它。

答案 3 :(得分:1)

我最终绊倒了这个选项:

http://johannburkard.de/blog/programming/javascript/automate-javascript-compression-with-yui-compressor-and-packer.html

这是一个批处理文件,它结合了本地版本的串联,YUI Compressor和Dean Edward的Packer。

但最终,我无法让Packer在本地工作。它一直在破坏我的.js。

所以,我跳过那部分,然后通过在线Packer运行我的YUI Compressed代码,只看到压缩率进一步增加1%,所以只省略了Packer阶段。

最后,我的解决方案使用了上​​述链接指令和稍微修改过的批处理文件:

输入.. \ js-in *> jb.js java -jar .. \ yui \ build \ yuicompressor-2.4.2.jar jb.js -o jb-yui.js

感谢所有其他(有效)解决方案。很多好消息!

答案 4 :(得分:0)

我几乎专门用这个网站压缩我的JS和CSS文件:
http://www.lotterypost.com/js-compress.aspx
http://www.lotterypost.com/css-compress.aspx