tubalmartin/cssmin
PHP CSS minifier ported from YUI Compressor (v2.4.8) with extra fixes/features. Compress CSS via PHP API, CLI, or GUI; options include keeping sourcemap comments, removing important comments, and line break control. Composer install; PHP 5.3.2+.
public/css processing).@stack('css') with on-the-fly compression).asset() helper for optimized static asset delivery.npm run build (Laravel Mix) via a custom Webpack plugin.booted event to minify cached CSS files in public/css.vendor/bin/cssmin) and web GUI for manual or CI/CD pipeline usage (e.g., GitHub Actions, Docker builds).memory_limit is 128M, but complex CSS (e.g., Bootstrap + custom styles) may require 256M+ (configurable via setMemoryLimit()).npm run build) to avoid runtime costs.@import paths) may crash the minifier. Validate input with tools like PostCSS or CSSLint before minification.purgecss)?cssnano (PostCSS-based) for modern minification.css-loader + this package) or a post-build script to minify CSS.// webpack.mix.js
mix.postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
require('postcss-nested'),
// Minify after processing
new (require('tubalmartin/cssmin').Minifier)().run.bind(new (require('tubalmartin/cssmin').Minifier)())
]);
// app/Providers/AppServiceProvider.php
use tubalmartin\CssMin\Minifier;
public function boot()
{
Blade::directive('minify', function ($css) {
return "<?php echo (new Minifier())->run(".$css."); ?>";
});
}
<style>{{ minify($css) }}</style>
vendor/bin/cssmin in a post-build step to minify public/css files.# .github/workflows/deploy.yml
- name: Minify CSS
run: vendor/bin/cssmin -i public/css/*.css -o public/css/min/
app.css).cssnano or Terser for JS/CSS if this package causes issues.public/css/*.css files.version() helper) to avoid stale content.npm run build (Laravel Mix) or CI/CD.npm run build && vendor/bin/cssmin -i public/css/*.css -o public/css/min/
public function handle($request, Closure $next)
{
$response = $next($request);
if ($response->headers->get('Content-Type') === 'text/css') {
$css = $response->getContent();
$response->setContent((new Minifier())->run($css));
}
return $response;
}
public/css).keepSourceMapComment() and setLineBreakPosition() allow fine-tuning.preg_replace callbacks) or security issues.cssnano): More modern, actively maintained.purgecss: Optimizes unused CSS.--dry-run flag to analyze minification stats.try-catch block).tubalmartin/cssmin for existing solutions.How can I help you explore Laravel packages today?