刪除空格、刪除註解、合併檔案(包括@import
語句和 CSS 檔案中的小資源),並優化/縮短一些常見的程式設計模式,例如:
JavaScript
object['property']
-> object.property
true
, false
-> !0
, !1
while(true)
-> for(;;)
CSS
@import url("http://path")
-> @import "http://path"
#ff0000
、 #ff00ff
-> red
、 #f0f
-0px
, 50.00px
-> 0
, 50px
bold
-> 700
p {}
-> 刪除
它附帶了一個巨大的測試套件。
use MatthiasMullieMinify;$sourcePath = '/path/to/source/css/file.css';$minifier = new MinifyCSS($sourcePath);// 我們甚至可以添加另一個文件,然後它們將被 // 加入 1輸出檔案$sourcePath2 = '/path/to/second/source/css/file.css';$minifier->add($sourcePath2);//或我們可以只新增純CSS$css = 'body { color: # 000000 ; }';$minifier->add($css);// 將縮小檔案儲存到磁碟$minifiedPath = '/path/to/minified/css/file.css';$minifier->minify($minifiedPath);/ /或只輸出 contentecho $minifier->minify();
// 看看 CSS 範例;它是完全相同的,但是帶有 JS 類別和 JS 檔案:)
CSS 和 JS 壓縮器的可用方法有:
物件建構函數接受 0 個、1 個或多個檔案路徑,甚至是完整的 CSS/JS 內容,這些內容都應該被縮小。所有傳遞的 CSS/JS 將合併為 1 個縮小檔案。
使用 MatthiasMullieMinify;$minifier = new MinifyJS($path1, $path2);
這大致相當於構造函數。
$minifier->add($path3);$minifier->add($js);
這將縮小檔案的內容,將結果儲存到 $path 並傳回結果內容。如果省略 $path 參數,結果將不會寫入任何地方。
注意:如果您的 CSS 具有相對路徑(導入、圖像等),則應始終指定目標路徑!然後這些相對路徑將根據新路徑進行調整。
$minifier->minify('/target/path.js');
縮小並可選擇儲存到文件,就像minify()
一樣,但它也是gzencode()
縮小的內容。
$minifier->gzip('/target/path.js');
CSS 縮小器會自動將引用的檔案(如圖像、字體等)嵌入到縮小的 CSS 中,因此不必透過多個連接來獲取它們。
然而,對於非常大的文件,最好單獨加載它們(因為如果包含它們,則會增加 CSS 載入時間。)
此方法允許設定導入縮小 CSS 的檔案的最大大小(以 kB 為單位)。預設大小為 5。
$minifier->setMaxImportSize(10);
CSS 縮小器會自動將引用的檔案(如圖像、字體等)嵌入到縮小的 CSS 中,因此不必透過多個連接來獲取它們。
此方法允許指定檔案類型及其 data:mime 類型。
預設嵌入檔案類型為 gif、png、jpg、jpeg、svg、apng、avif、webp、woff 和 woff2。
$extensions = array('gif' => '資料:影像/gif','png' => '資料:影像/png', );$minifier->setImportExtensions($extensions);
如果您使用 Composer 來管理專案的依賴項,只需將matthiasmullie/minify
的依賴項新增至您的composer.json 檔案即可:
作曲家需要 matthiasmullie/minify
儘管建議使用 Composer,但您實際上可以按照自己的意願包含這些文件。
Minify 已獲得 MIT 許可。