開源作品-PHP寫的JS和CSS檔案壓縮利器-SuMinify_PHP_1_5,
前言:
網站項目需要引用外部檔案以減小載入流量,而且第一次載入外部資源檔後,其他同網域名稱的頁面如果引用相同的地址,可以利用瀏覽器緩衝直接讀取本機快取資源檔,而不需要每個頁面都下載相同的外部資源檔。外部資源檔有一些是第三方外掛程式,有一些是自己寫的業務功能指令碼,項目引用這些外部檔案,需要把沒有壓縮過的第三方外掛程式壓縮後再引用,而自己的業務功能指令碼,有的做成外掛程式形式,引用一個功能指令碼,需要同時引用若干個指令檔,因此需要把這些指令檔合并成一個壓縮檔再引用,這樣可以減少HTTP請求次數,減少這些外部資源檔的載入流量。
為了實現這些目標,自己原來的步驟是:在目標路徑建立.min.xxx檔案 》 開啟提供線上js/css壓縮服務的網站,把源碼複製進去在線壓縮,然後拷貝出來,粘帖到.min.xxx檔案, 如果需要合并檔案,則把多個檔案的源碼複製,壓縮,粘帖到同一個.min.xxx檔案。但是隨著項目的進展,功能越來越多,需要引用的檔案也越來越多,每次改動一個外部源檔案,都要折騰很多精力才能把.min.xxx檔案更新好,特別是源檔案分布在不同的目錄下,為了尋找這些目錄也是挺費心的。所以產生了做一個自動化壓縮合并的小程式的想法,只要運行這個程式,就能幫我把這些繁瑣的重複勞動完成。
簡介:
SuMinify_PHP是一個用於壓縮或合并網站項目中的js檔案或css檔案的單檔案綠色版PHP程式,和phpinfo.php一樣可以方便放到項目中使用。
開發網站項目過程中,js檔案經常是分布在各個不同的目錄中,如第三方外掛程式、自己寫的外掛程式等,一般會把多個Javascript外掛程式壓縮後合并到一個檔案中供項目引用,以減少http請求次數。
如果手工操作,每次外掛程式改動的時候,都要花費很多精力來壓縮和合并檔案,有了這個自動化程式,就可以把項目中的外部資源檔根據規則寫成一個自動化配置,然後每次改動檔案後,只要運行SuMinify程式,就可以根據規則幫你把檔案壓縮或合并到指定目錄,省去了費心費力的體力勞動,提高了工作效率~
特性:
1、單檔案綠色版,無外部依賴,方便部署使用
2、支援多重專案快速切換
3、根據規則寫好設定檔,能根據設定檔自動從源碼路徑中讀取源碼並壓縮,輸出到到指定的.min壓縮檔
4、項目的規則設定檔能放再任意路徑中
5、合并不同目錄中的多個檔案的內容到一個檔案中
6、對整個目錄進行就地批量壓縮,比如目錄中有若干檔案,則只要填好目錄路徑,就能自動遍曆目錄中的檔案,並以每個檔案名稱+.min.尾碼的格式產生壓縮後的檔案
7、將整個目錄的資源檔進行壓縮後,合并到一個指定路徑的.min檔案中
8、整個目錄就地批量壓縮的時候,自動忽略.min檔案,防止重複壓縮
使用:
1. 將SuMinify_PHP_1_5檔案複製到您的項目中任意目錄(本檔案為單檔案綠色版,方便使用^_^).
2. 修改配置內容為適合您需要的規則.
3. 運行本檔案,產生成功後,就可以查看並使用您的成果了~
協助:
$config = array( // soui_v3a項目 'soui_v3a' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\soui_v3a_config.php', // soui_v3b項目 'soui_v3b' => array( 'js' => array( 'in-place-minify' => array(// 就地壓縮js 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\superfish\superfish.js', // 就地產生superfish.min.js檔案 array('path' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\*', 'skips' => array('F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\skip-me1.js', 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\skip-me2.js')), // 整個目錄就地壓縮,跳過其中2個檔案的壓縮 ), 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\min\jquery.easyui.min.js' => array( array('path' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\easyui\jquery.easyui.min.js', 'minify' => false), // 不用壓縮,直接合并 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\easyui\locale\easyui-lang-zh_CN.js', // 壓縮後合并 ), 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\min\pages.min.js' => array( array('path' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\*'), // 將目錄中所有檔案壓縮後合并 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\js-prototype-extension.js', // 壓縮後合并 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Plugin\jquery-audioplayer-1.0\jquery-audioPlayer-1.0.js', // 壓縮後合并 ) ), 'css' => array( 'in-place-minify' => array(// 就地壓縮css 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\Pages\*', // 整個目錄就地壓縮 ), 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\Default\easyui.min.css' => array( 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\Default\easyui.css', // 壓縮後合并 array('path' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\icon.css', 'replaces' => array("'icons/" => "'../Icons/")), // 壓縮後替換內容,然後合并 ), 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\superfish\superfish.min.css' => array( 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\superfish\superfish.css', // 就地壓縮 ), ) ),);
運行:
首頁:http://git.oschina.net/sutroon/SuMinify_PHP_1_5
源碼:https://git.oschina.net/sutroon/SuMinify_PHP_1_5.git
http://www.bkjia.com/PHPjc/1018845.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1018845.htmlTechArticle開源作品-PHP寫的JS和CSS檔案壓縮利器-SuMinify_PHP_1_5, 前言: 網站項目需要引用外部檔案以減小載入流量,而且第一次載入外部資源檔後,...