2009-09-11 80 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