Методы минимизации CSS в Laravel с примерами кода

Чтобы минимизировать CSS в Laravel, вы можете использовать несколько методов. Минимизация CSS включает в себя удаление ненужных пробелов, комментариев и уменьшение размера файла для сокращения времени загрузки страницы. Вот несколько подходов с примерами кода:

  1. Использование Laravel Mix:
    Laravel Mix – популярный инструмент, который упрощает компиляцию и минимизацию ресурсов. Чтобы минимизировать CSS с помощью Laravel Mix, сначала убедитесь, что вы установили Laravel Mix, запустив npm install laravel-mixв каталоге вашего проекта. Затем откройте файл webpack.mix.jsи добавьте следующий код:
const mix = require('laravel-mix');
mix.styles([
    'resources/css/app.css',
], 'public/css/app.min.css').options({
    processCssUrls: false
});

В этом примере мы предполагаем, что у вас есть файл CSS с именем app.cssв каталоге resources/css. Метод mix.stylesобъединяет и минимизирует файлы CSS, а полученный минимизированный файл сохраняется как public/css/app.min.css.

  1. Использование сторонних пакетов.
    Вы также можете использовать сторонние пакеты, специально разработанные для минимизации CSS в Laravel. Одним из популярных пакетов является spatie/laravel-stylesheet-optimization. Чтобы использовать его, установите пакет, запустив composer require spatie/laravel-stylesheet-optimization. Затем добавьте следующий код в файл конфигурации Laravel (config/app.php) в массиве providers:
Spatie\Stylesheet\StylesheetServiceProvider::class,

После добавления поставщика услуг вы можете минимизировать CSS, выполнив следующую команду:

php artisan optimize:styles
  1. Минификация вручную.
    Если вы предпочитаете ручной подход, вы можете создать собственную команду для минимизации файлов CSS. Сначала создайте новую команду, используя следующую команду:
php artisan make:command MinifyCSS

Затем откройте сгенерированный файл app/Console/Commands/MinifyCSS.phpи замените метод handleследующим кодом:

public function handle()
{
    $css = file_get_contents(public_path('css/app.css'));
    $minifiedCSS = preg_replace('/\s+/', ' ', $css);
    $minifiedCSS = preg_replace('/\s*([:;{}])\s*/', '$1', $minifiedCSS);
    $minifiedCSS = preg_replace('/\/\*(.*?)\*\//', '', $minifiedCSS);
    file_put_contents(public_path('css/app.min.css'), $minifiedCSS);
    $this->info('CSS minified successfully!');
}

В этом примере мы предполагаем, что у вас есть файл CSS с именем app.cssв каталоге public/css. Когда вы запустите команду php artisan minify:css, она прочитает файл CSS, удалит ненужные пробелы, комментарии и сохранит мини-версию как public/css/app.min.css..