mrclay / minify
Minify 是一个 PHP 应用,可以帮助您遵循客户端性能的几个规则。它将多个 CSS 或 JavaScript 文件合并,删除不必要的空白和注释,并通过 gzip 编码和最佳客户端缓存头提供服务
Requires
- php: ^8.1
- ext-pcre: *
- intervention/httpauth: ^2.0|^3.0
- marcusschwarz/lesserphp: ^0.5.5
- monolog/monolog: ~1.1|~2.0|~3.0
- mrclay/jsmin-php: ~2
- mrclay/props-dic: ^4
- tubalmartin/cssmin: ~4
Requires (Dev)
- firephp/firephp-core: ~0.4.0
- meenie/javascript-packer: ~1.1
- phpunit/phpunit: ^8
- scssphp/scssphp: ^1.12
- tedivm/jshrink: ~1.1.0
Suggests
- firephp/firephp-core: Use FirePHP for Log messages
- meenie/javascript-packer: Keep track of the Packer PHP port using Composer
README
原始作者不再推荐使用 Minify,尤其是早期版本,它们并没有设计用来处理现代的 JS 和 CSS 语法。相反,请使用最新的性能测量工具,如 Lighthouse,并遵循其建议。
2010 年,Minify 为一些网站提供了一些很好的改进,但现在浏览器和 HTTP 服务器已经好多了,Minify 可能只在某些情况下提供微小的性能提升。此外,JS 和 CSS 现在变化很快,新的语法可能会导致通过 Minify 服务的代码出现错误。
关于
Minify 是一个用于 JS 和 CSS 资产的 HTTP 服务器。它压缩和合并文件,并使用适当的头信息提供服务,允许条件 GET 或长期过期。
上述统计数据来自一个 简短教程,展示了如何在现有网站上轻松设置 Minify。它消除了 5 个 HTTP 请求,并将 JS/CSS 带宽减少了 70%。
CSS 文件中的相对 URL 将被重写,以补偿从不同目录提供。
静态文件服务
第 3 版允许从文件系统 直接服务文件,从而获得更好的性能。我们鼓励您尝试此功能。
支持
在 Google Group 上发布帖子。
安装
请参阅 安装指南。
配置 & 使用
(使用 2.x? 这里是有 2.x 文档.)
请参阅 用户指南。
Minify 还附带一个 URI 构建器应用程序,可以帮助您编写用于 Minify 的 URL 或配置文件组。
请参阅 食谱,以获取更多关于最小化的高级选项。
更多 文档 可用。
单元测试
- 通过 Composer 安装开发依赖项:
composer install
composer test
或phpunit
警告
- Minify 被设计为高效,但对于高流量网站,由于其 PHP 的 CGI 开销,它可能比您的 HTTPd 慢于文件服务。请参阅 常见问题解答 和 食谱 以获取更多信息。
- 如果您合并了许多 CSS,请注意 IE 的 4096 选择器/文件限制,影响 IE 6 到 9。
- Minify 应该 能够很好地处理 UTF-8 或其他 8 位编码(如 ISO 8859/Windows-1252)的文件。默认情况下,Minify 将 ";charset=utf-8" 追加到它发送的内容类型头中。
致谢
Minify受到Maxim Martynyuk的jscsscomp以及Patrick Hunlock的Supercharged JavaScript文章的启发。
用于JavaScript压缩的JSMin库最初由Douglas Crockford编写,并由Ryan Grove专门将其移植到PHP,以供Minify使用。