matthiasmullie / minify
PHP 中的 CSS & JavaScript 压缩工具。移除空白,删除注释,合并文件(包括 @import 语句和 CSS 文件中的小资源),并优化/缩短一些常见的编程模式。
Requires
- php: >=5.3.0
- ext-pcre: *
- matthiasmullie/path-converter: ~1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: >=2.0
- matthiasmullie/scrapbook: >=1.3
- phpunit/phpunit: >=4.8
- squizlabs/php_codesniffer: >=3.0
Suggests
- psr/cache-implementation: Cache implementation to use with Minify::cache
- dev-master
- 1.3.73
- 1.3.72
- 1.3.71
- 1.3.70
- 1.3.69
- 1.3.68
- 1.3.67
- 1.3.66
- 1.3.65
- 1.3.64
- 1.3.63
- 1.3.62
- 1.3.61
- 1.3.60
- 1.3.59
- 1.3.58
- 1.3.57
- 1.3.56
- 1.3.55
- 1.3.54
- 1.3.53
- 1.3.52
- 1.3.51
- 1.3.50
- 1.3.49
- 1.3.48
- 1.3.47
- 1.3.46
- 1.3.45
- 1.3.44
- 1.3.43
- 1.3.42
- 1.3.41
- 1.3.40
- 1.3.39
- 1.3.38
- 1.3.37
- 1.3.36
- 1.3.35
- 1.3.34
- 1.3.33
- 1.3.32
- 1.3.31
- 1.3.30
- 1.3.29
- 1.3.28
- 1.3.27
- 1.3.26
- 1.3.25
- 1.3.24
- 1.3.23
- 1.3.22
- 1.3.21
- 1.3.20
- 1.3.19
- 1.3.18
- 1.3.17
- 1.3.16
- 1.3.15
- 1.3.14
- 1.3.13
- 1.3.12
- 1.3.11
- 1.3.10
- 1.3.9
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.0
This package is auto-updated.
Last update: 2024-09-15 12:58:50 UTC
README
移除空白,删除注释,合并文件(包括 @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 {}
-> 移除
并且它附带一个庞大的测试套件。
用法
CSS
use MatthiasMullie\Minify; $sourcePath = '/path/to/source/css/file.css'; $minifier = new Minify\CSS($sourcePath); // we can even add another file, they'll then be // joined in 1 output file $sourcePath2 = '/path/to/second/source/css/file.css'; $minifier->add($sourcePath2); // or we can just add plain CSS $css = 'body { color: #000000; }'; $minifier->add($css); // save minified file to disk $minifiedPath = '/path/to/minified/css/file.css'; $minifier->minify($minifiedPath); // or just output the content echo $minifier->minify();
JS
// just look at the CSS example; it's exactly the same, but with the JS class & JS files :)
方法
对于 CSS 和 JS 压缩工具,可用的方法包括
__construct(/* 路径重载 */)
对象构造函数接受 0、1 个或多个文件路径,或者甚至完整的 CSS/JS 内容,这些内容应该被压缩。所有传递的 CSS/JS 都将合并为 1 个压缩文件。
use MatthiasMullie\Minify; $minifier = new Minify\JS($path1, $path2);
add($path, /* 路径重载 */)
这大致等同于构造函数。
$minifier->add($path3); $minifier->add($js);
minify($path)
这将压缩文件内容,将结果保存到 $path 并返回结果内容。如果省略了 $path 参数,则结果将不会写入任何地方。
注意:如果您有包含相对路径的 CSS(到导入、图片等),您应始终指定目标路径!然后那些相对路径将根据新路径进行调整。
$minifier->minify('/target/path.js');
gzip($path, $level)
与 minify()
一样,压缩并可选地保存到文件,但它也使用 gzencode()
对压缩内容进行压缩。
$minifier->gzip('/target/path.js');
setMaxImportSize($size) (仅 CSS)
CSS 压缩工具将自动将引用的文件(如图片、字体等)嵌入到压缩的 CSS 中,以便它们不需要通过多个连接获取。
但是,对于非常大的文件,最好单独加载它们(如果它们被包含,这会增加 CSS 加载时间。)
此方法允许设置导入到压缩 CSS 中的文件的最大大小(以 KB 为单位)。默认大小为 5。
$minifier->setMaxImportSize(10);
setImportExtensions($extensions) (仅 CSS)
CSS 压缩工具将自动将引用的文件(如图片、字体等)嵌入到压缩的 CSS 中,以便它们不需要通过多个连接获取。
此方法允许指定文件的类型及其数据:MIME 类型。
默认嵌入的文件类型是 gif、png、jpg、jpeg、svg、apng、avif、webp、woff 和 woff2。
$extensions = array( 'gif' => 'data:image/gif', 'png' => 'data:image/png', ); $minifier->setImportExtensions($extensions);
安装
如果您使用 Composer 管理项目的依赖项,只需将 matthiasmullie/minify
添加到您的 composer.json 文件中即可。
composer require matthiasmullie/minify
尽管建议使用 Composer,但您实际上可以以任何方式 包含这些文件。
许可证
Minify 使用 MIT 许可证。