Сжатие CSS и JS ресурсов в Yii2 по группам?

В Yii2 для сжатия CSS и JS ресурсов можно использовать конфигурационный файл приложения main.php, где определены настройки приложения.

Для начала, необходимо убедиться, что расширение yii2/assets установлено и настроено в файле composer.json. Если оно отсутствует, то нужно добавить его в секцию require.

"require": {
    "yiisoft/yii2-assets": "~2.0.0"
}

Далее, в файле main.php необходимо настроить компонент assetManager:

'components' => [
    'assetManager' => [
        'bundles' => [
            'yiiwebJqueryAsset' => [
                'jsOptions' => [
                    'position' => yiiwebView::POS_HEAD,
                ],
            ],
            'yiiwidgetsActiveFormAsset' => [
                'jsOptions' => [
                    'position' => yiiwebView::POS_END,
                ],
            ],
            'appassetsAppAsset' => [
                'cssOptions' => [
                    'media' => 'screen',
                ],
                'css' => [
                    'css/site.css',
                ],
                'js' => [
                    'js/site.js',
                ],
            ],
        ],
    ],
],

Выше мы определили три разные группы ресурсов.

- yiiwebJqueryAsset - этот ресурс будет подключаться в заголовке страницы.
- yiiwidgetsActiveFormAsset - этот ресурс будет подключаться в конце страницы.
- appassetsAppAsset - это пользовательский ассет, где мы указываем CSS и JS файлы, которые будет сжиматься и подключаться на странице. Для CSS указываем также media, указывающий, что данный стиль применяется только для устройств с экраном.

Также возможно использование бандлов классов активов (asset bundles) для группировки ресурсов:

'components' => [
    'assetManager' => [
        'bundles' => [
            'appassetsMyAsset',
        ],
    ],
],

В данном примере, если appassetsMyAsset наследуется от yiiwebAssetBundle, то CSS и JS файлы, указанные в MyAsset, будут сжиматься и подключаться.

Для сжатия и минификации ресурсов можно использовать следующие пакеты:
- matthew/yii2-minify-view - для сжатия CSS и JS ресурсов.
- akaunting/yii2-webpack - для сборки и оптимизации ресурсов с использованием Webpack.

Подробнее о настройке и использовании данных пакетов можно узнать из их документации.