microweber-packages / microweber-minifier
Standalone Laravel package for JS and CSS minification. Reusable in any Laravel app. Based on fixed JShrink for JavaScript.
Package info
github.com/microweber-packages/microweber-minifier
pkg:composer/microweber-packages/microweber-minifier
Requires
- php: ^8.1
- illuminate/filesystem: ^10.0|^11.0|^12.0|^13.0
- illuminate/http: ^10.0|^11.0|^12.0|^13.0
- illuminate/routing: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- microweber-packages/microweber-package: *
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- filament/filament: ~5.0
- larastan/larastan: ^3.0
- laravel/dusk: ^8.0|^9.0
- livewire/livewire: ^3.0|^4.0
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
Suggests
- filament/filament: Required for the Filament admin settings page
Provides
None
Conflicts
None
Replaces
- microweber-packages/minifier: *
This package is auto-updated.
Last update: 2026-11-03 17:07:10 UTC
README
Standalone Laravel package for JavaScript and CSS minification. Extracted from Microweber CMS so it can be reused in any Laravel application.
- JS engine: fixed JShrink-based
JsMinifier(no infinite-loop on EOF, proper string/regex handling) - CSS engine: lightweight comment/whitespace minifier (
CssMinifier)
Requirements
- PHP 8.1+
- Laravel 10 / 11 / 12
Installation
composer require microweber-packages/microweber-minifier
The service provider is auto-discovered. Publish the config if needed:
php artisan vendor:publish --tag=minifier-config
Usage
use MicroweberPackages\Minifier\Services\JsMinify; use MicroweberPackages\Minifier\Services\CssMinify; use MicroweberPackages\Minifier\Facades\Minifier; $js = app(JsMinify::class)->minify("function a() { return 1; }"); $css = app(CssMinify::class)->minify(".a { color: red; }"); // Or via facade / helpers $js = Minifier::minifyJs($source); $css = Minifier::minifyCss($source); $js = js_minify($source); $css = css_minify($source);
Helper functions
js_minify(string $js, array $options = []): string; css_minify(string $css, array $options = []): string; minify_js(string $js, array $options = []): string; // alias minify_css(string $css, array $options = []): string; // alias minifier_stats(): array; minifier_enabled(): bool;
HTTP routes
| Method | Route | Name |
|---|---|---|
| GET | /minifier/stats |
minifier.stats |
| GET | /minifier/self-test |
minifier.self-test |
| GET | /api/minifier/ping |
minifier.ping |
| POST | /minifier/js |
minifier.js |
| POST | /minifier/css |
minifier.css |
Filament
use MicroweberPackages\Minifier\Filament\MinifierPlugin; $panel->plugin(MinifierPlugin::make());
CMS integration
AssetOptimizationService in Microweber uses js_minify() / css_minify() from this package.
License
MIT (package). JavaScript minifier derived from JShrink (BSD-3-Clause). See LICENSE-JSHRINK.