jbsnewmedia/css-purger
Composer 安装命令:
composer require jbsnewmedia/css-purger
包简介
A lightweight PHP library to purge unused CSS rules from stylesheets based on defined selectors.
README 文档
README
CssPurger is a lightweight PHP library to remove unused CSS rules from large stylesheets. It’s perfect for optimizing CSS frameworks like Bootstrap based on actual usage in your project.
🧩 Installation
Install via Composer:
composer require jbsnewmedia/css-purger
🚀 Features
- Removes unused CSS based on custom-defined selectors
- Supports nested blocks (e.g.
@media) - Fully supports selectors with pseudo-classes like
:hover,:focus, etc. - Output as minified or pretty-printed CSS
- Easily extendable via subclassing
- No external dependencies
- Bootstrap integration example included
🔧 Usage
use JBSNewMedia\CssPurger\Vendors\Bootstrap; $purger = new Bootstrap('./assets/css/bootstrap.css'); $purger->loadContent(); $purger->prepareContent(); $purger->runContent(); // Add the selectors you want to keep $purger->addSelectors([ ':root', '[data-bs-theme=light]', '[data-bs-theme=dark]', 'body', 'h1', '.h1', '.container', '.pt-3', '.pb-3', '.alert', '.alert-danger', '.btn:hover', ]); // Save the result file_put_contents('./assets/css/bootstrap-purged.css', $purger->generateOutput(false)); // readable file_put_contents('./assets/css/bootstrap-purged.min.css', $purger->generateOutput()); // minified
🧠 Extendability
You can subclass CssPurger to customize parsing or handling, e.g. for Bootstrap-specific structures:
use JBSNewMedia\CssPurger\CssPurger; class CssPurgerBootstrap extends CssPurger { public function prepareContent(): self { $this->cssBlockPrefix = substr($this->content, 0, strpos($this->content, ':root')); $this->content = str_replace("*/\n:root,", "*/\n}\n:root,", $this->content); return $this; } }
⚠️ Notes
- This is not a full CSS parser — it uses lightweight string-based logic for performance
- You must explicitly define which selectors to keep
📄 License
MIT License — free for personal and commercial use.
🤝 Contributing
Pull requests, bug reports and ideas for improvements are always welcome!
🧑💻 Author
Maintained by JBS New Media.
jbsnewmedia/css-purger 适用场景与选型建议
jbsnewmedia/css-purger 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 48 次下载、GitHub Stars 达 2, 最近一次更新时间为 2025 年 07 月 16 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「css」 「bootstrap」 「minify」 「optimizer」 「clean」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jbsnewmedia/css-purger 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jbsnewmedia/css-purger 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jbsnewmedia/css-purger 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Twig extension to insert css as inline styles with a tag
Caching and compression for Twig assets (JavaScript and CSS).
Views for the package MedicOneSystems Livewire Datatables with Bootstrap 4
Define your own css rule-sets for the TYPO3 CMS backend.
bootstrap select field module implementing http://silviomoreto.github.io/bootstrap-select/
Selectize Theme for Bootstrap 4
统计信息
- 总下载量: 48
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 26
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-16