momentum81/php-remove-unused-css

PHP Remove Unused CSS 是一个使用 PHP 从您的网站中删除未使用 CSS 的工具。

0.1.4 2020-11-02 11:13 UTC

This package is auto-updated.

Last update: 2024-09-29 05:55:45 UTC


README

PHP Remove Unused CSS 是一个使用 PHP 从您的网站中删除未使用 CSS 的工具。由 Momentum 81 开发 - https://momentum81.com

- IMPORTANT! MAKE SURE YOU READ THE GUIDE FIRST OR YOU MAY INADVERTENTLY OVERWRITE YOUR CSS

主要思路是首先将您的 CSS 编译成尽可能少的文件,然后您可以使用此包删除额外的类,然后使用此包(或另一个包)来压缩 CSS。

通常这会使用 JS 完成,但是如果您希望将其集成到纯 PHP 开发流程中,可能会引发问题。

安装

通过 composer 安装

composer require momentum81/php-remove-unused-css

示例

$removeUnusedCss = new \Momentum81\PhpRemoveUnusedCss\RemoveUnusedCssBasic();

$removeUnusedCss->whitelist('.fab', '.far', '.fal')
    ->styleSheets(public_path('**/*.css'))
    ->htmlFiles(resource_path('**/*.blade.php'))
    ->setFilenameSuffix('.refactored.min')
    ->minify()
    ->refactor()
    ->saveFiles();

使用此包有两种主要方式

  • 基本
  • 完整(开发中,尚未提供)

基本类

基本类是通过 RemoveUnusedCssBasic 创建的。这基本上是一个“愚蠢”的系统,它不会以任何方式遍历 DOM,并且只会包含在 CSS 中最低级别的选择器。

尽管如此,这仍然可以在文件大小上提供一些显著的节省,尤其是在您使用像 Bootstrap 这样的包时。

$removeUnusedCss = new \Momentum81\PhpRemoveUnusedCss\RemoveUnusedCssBasic();

基本类只是进行了弱匹配,让我们看看以下 HTML

<div>
    <span class="hello">Hello World</span>
</div>

以下 CSS 类将会匹配并保留,尽管在 HTML 中使用的 .hello 类不在使用 .test 类的父元素内部

.test .hello {}
.test .hello::after {}

完整类

开发中。此方法试图更智能一些,尽可能多地遍历 DOM(当使用模板系统时,如果视图没有缓存,这会无限困难,因此系统在这里只能做得如此好)。

可用方法