2009-06-09 85 views
8

我一直在我的測試服務器上使用yuicompressor.jar,以便對已更改的JavaScript文件進行即時最小化。現在我已經將網站部署到公共服務器上,我注意到服務器的策略禁止使用exec()或其等價物,所以沒有更多的java執行。YUICompressor或類似的PHP?

是否有一個體面的即時PHP實現JS壓縮機?類似這樣的事情我唯一能找到的就是Minify,但它更像是一個全面的壓縮解決方案,包含緩存和一切。我想保持文件分開,並使最小化的文件遵循我自己的命名約定,因此Minify對於此目的有點太複雜。

所述的工具,像的YUICompressor,應該可以採取任何文件名或JavaScript作爲輸入,並要麼寫入文件或輸出的壓縮的JavaScript。

編輯:爲了澄清,我正在尋找的東西,沒有被作爲一個獨立的(即它可以從一個函數調用,而不是我的嗅探GET變量)。如果我只是想要一臺壓縮機,Minify顯然是一個不錯的選擇。

EDIT2:很多已在五年內改變,因爲我問這個問題。今天,我強烈建議從服務器代碼中分離出前端工作流程。除了最簡單的jQuery增強功能之外,還有很多用於JS開發的好工具,因此擁有完整的工作流程以及自動捆綁,測試和臨時存儲以及僅部署縮小的捆綁包而非原始文件是一個更好的主意。

回答

6

是有,這就是所謂的minify

唯一需要考慮複雜性的方法是設置一個,而這其實並沒有什麼。編輯groupsConfig.php文件,如果你想多JS/CSS在一個<script><link>聲明:

return array(
    'js-common' => array('//js/jquery/jquery-1.3.2.min.js', '//js/common.js', '//js/visuals.js', 
'//js/jquery/facebox.js'), 
    'css-common' => array('//css/main.css', '//css/layout.css','//css/facebox.css') 
); 

爲包括上述 'JS-普通' 組,這樣做:

<script type="text/javascript" src="/min/g=js-common"></script> 
+1

正如我所說。我找不到在應用程序中運行minify的方法。哎呀,它甚至希望設置某些GET參數,而不是以文件名作爲參數。 這可能是好的,但不是我要找的。 – 2009-06-09 22:19:34

+0

Minify並不複雜。你可以簡單地通過使用諸如 karim79 2009-06-09 22:22:37

0

嘗試Lissa

利薩是一個通用的CSS和JavaScript加載工具。 Lissa是YUI PHP Loader的擴展,旨在解決當前裝載程序的限制之一;組合加載。 YUI PHP Loader附帶一個組合加載器,它能夠通過輸出所有YUI JavaScript和/或CSS要求作爲每個資源類型的單個請求來減少HTTP請求並提高性能。即使你需要8個YUI組件,最終歸結爲13個文件,你仍然只會發出2個HTTP請求;一個用於CSS,另一個用於JavaScript。這很好,但是如何定製非YUI資源。 YUI PHP Loader會加載它們,但它將它們作爲單獨的包含加載,因此它們錯過了組合服務的好處,並且頁面的HTTP請求數量增加。 Lissa通過使用YUI PHP Loader來處理加載和排序的YUI和/或自定義資源依賴關係以及與Minify一起使用的對,從而解決了此限制。

3

(我知道我一直在尋找同樣的事情不知道如何使用PHP與jar文件直接打交道 - 這就是我在這裏結束了所以我分享我發現了什麼)

縮減大小是一個擁有大量功能的大型圖書館。然而,涅槃的部分是一個很小的類:http://code.google.com/p/minify/source/browse/trunk/min/lib/Minify/YUICompressor.php

&非常非常容易使用:

//set the path to the jar file 
Minify_YUIcompressor::$jarFile=_ROOT.'libs/java/yuicompressor.jar'; 
//set the path to a writable temp folder 
Minify_YUIcompressor::$tempDir=_ROOT.'temp/'; 

//minify 
$yourcssminified=Minify_YUIcompressor::minifyCss($yourcssstringnotminified,$youroptions) 

爲JS同樣的過程,如果你需要更多的功能剛剛從圖書館&挑閱讀源代碼,看看你如何從你的應用程序直接撥打電話。

我沒看過這個問題很好,因爲縮小是基於使用的jar文件,運無法反正他的服務器配置

縮減大小使用它也包括其他的縮小文件的方法比衣,例如:

http://code.google.com/p/minify/source/browse/trunk/min/lib/JSMinPlus.php?r=443&spec=svn468