2009-09-11 82 views
3

我正在研究一个包含大约一打.js文件和可能有六打.css文件的单页网站。在压缩之前凝聚CSS和JS?工具?最佳实践?

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

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

我也想结合我的文件和(理想情况下)结束与一个.js和一个.css文件(都压缩)。

是否有任何首选的工具可以让您自动将.js和.css文件合并为一个文件,然后通过YUI压缩器运行?

+0

我会在缩小JS和CSS的顶部添加gzip压缩。 – Eimantas 2009-09-11 21:26:42

+0

我也在寻找一个解决方案,最好在PHP,这将让我运行脚本,并在我的本地开发服务器上这样做,我可以保持它分开,并结合和压缩之前上传到活服务器 – JasonDavis 2009-09-11 21:26:46

回答

1

我结束了在此选项绊脚石:

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

这是一个批处理文件,结合本地版本的串联,YUI压缩器和Dean Edward的Packer。尽管如此,我无法让派克在本地工作。它不断腐蚀我的.js。

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

最后,我的解决方案使用具有稍微修改批处理文件中的上面链接指令:

类型.. \ JS-在*> jb.js Java的罐子.. \衣\建立\ yuicompressor- 2.4.2.jar jb.js -o jb-yui.js

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

2

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

+0

看起来不错!唉,它是Ruby,所以可能不适合我们的工作流程,但很好的信息。 – 2009-09-12 14:47:35

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%" 

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

+0

感谢分享!我会玩。 – 2009-09-12 14:48:06

3

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

+0

不错的选择。我会探索!不过,我确实在寻找桌面解决方案,因为我正在使用各种不同的服务器。如果我们可以在发送到服务器之前在桌面上处理它,那最好。 – 2009-09-12 14:49:11

+0

如果你运行一个本地的Apache + PHP服务器,它会工作。 我可能可以将它编译成exe文件。你使用Windows,对吧? – 2009-09-12 16:20:17

+0

好的。下载并提取它:http://ramblingwood.com/sandbox/js-minifier/js-minifier.zip 只需将.js文件拖放到它上面(可以做多个),它会创建一个名为total .js与原始文件在同一个目录中,并将它们全部压缩到该文件中。 如果存在,它会附加到已存在的total.js文件中。 – 2009-09-13 02:30:35