删除空格、删除注释、合并文件(包括@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 { 颜色:#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 许可。