Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Использование команды asset в Yii 2

Использование команды asset

Yii предоставляет консольную команду с именем asset для автоматизации подхода, который мы только что описали.

Чтобы использовать эту команду, Вы должны сначала создать файл конфигурации для описания того, как комплекты ресурсов должны быть скомбинированы, и как они должны быть сгруппированы. Затем Вы можете использовать подкомманду asset/template, чтобы сгенерировать первый шаблон и затем отредактировать его под свои нужды.



yii asset/template assets.php

Данная команда сгенерирует файл с именем assets.php в текущей директории. Содержание этого файла можно увидеть ниже:

<?php
/**
 * Файл конфигурации команды консоли "yii asset".
 * Обратите внимание, что в консольной среде, некоторые псевдонимы путей, такие как "@webroot' и '@web ",
 * не могут быть использованы.
 * Пожалуйста, определите отсутствующие псевдонимы путей.
 */
return [
    // Настроить команду/обратный вызов для сжатия файлов JavaScript:
    'jsCompressor' => 'java -jar compiler.jar --js {from} --js_output_file {to}',
    // Настроить команду/обратный вызов для сжатия файлов CSS:
    'cssCompressor' => 'java -jar yuicompressor.jar --type css {from} -o {to}',
    // Whether to delete asset source after compression:
    'deleteSource' => false,
    // Список комплектов ресурсов для сжатия:
    'bundles' => [
        // 'yii\web\YiiAsset',
        // 'yii\web\JqueryAsset',
    ],
    // Комплект ресурса после сжатия:
    'targets' => [
        'all' => [
            'class' => 'yii\web\AssetBundle',
            'basePath' => '@webroot/assets',
            'baseUrl' => '@web/assets',
            'js' => 'js/all-{hash}.js',
            'css' => 'css/all-{hash}.css',
        ],
    ],
    // Настройка менеджера ресурсов:
    'assetManager' => [
    ],
];

Вы должны изменить этот файл и указать в bundles параметре, какие комплекты Вы планируете объединить. В параметре targets вы должны указать, как комплекты должны быть поделены в группы. Вы можете указать одну или несколько групп, как уже было сказано выше.

Note: Так как псевдонимы путей @webroot и @web не могут быть использованы в консольном приложении, Вы должны явно задать их в файле конфигурации.

JavaScript файлы объединены, сжаты и записаны в js/all-{hash}.js, где {hash} перенесён из хэша результирующего файла.

Параметры jsCompressor и cssCompressor указывают на консольные команды или обратный вызов PHP, выполняющие JavaScript и CSS объединение/сжатие. По умолчанию Yii использует Closure Compiler для объединения JavaScript файлов и YUI Compressor для объединения CSS файлов. Вы должны установить эти инструменты вручную или настроить данные параметры, чтобы использовать ваши любимые инструменты.

Вы можете запустить команду asset с файлом конфигурации для объединения и сжатия файлов ресурсов, а затем создать новый файл конфигурации комплекта ресурса assets-prod.php:

yii asset assets.php config/assets-prod.php

Сгенерированный файл конфигурации может быть включен в конфигурацию приложения, как описано в последнем подразделе.

Примечание: в случае если вы перенастраиваете комплекты ресурсов через [[yii\web\AssetManager::bundles]] или [[yii\web\AssetManager::assetMap]], и хотите, чтобы эти настройки применились для исходных файлов для сжатия, вы должны занести эти опции в раздел assetManager файла кофигурации для команды asset.

Замечание: составляя набор исходных комплектов ресурсов для сжатия, следует избегать использования таких, чьи параметры могут изменяться динамически (т.е. на уровне метода init() или после регистрации), поскольку они могут функционировать неправильно после сжатия.

Для справки: Команда asset является не единственной опцией для автоматического процесса объединения и сжатия ресурсов. Вы можете также использовать такой замечательный инструмент запуска приложений как grunt для достижения той же цели.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'