Как собрать и минифицировать CSS и JS в Yii2?

Обсуждение документации второй версии фреймворка. Переводы Cookbook и авторские рецепты.
Ответить
aquy
Сообщения: 48
Зарегистрирован: 2014.08.21, 09:35

Как собрать и минифицировать CSS и JS в Yii2?

Сообщение aquy »

Если я верно понимаю, то в yii2 отключена автоматическое использование сжатых библиотек в prodaction, как это было в yii1, вместо этого добавлен AssetBundle, но как им пользоваться не совсем понимаю. Вроде в официальной документации - www.yiiframework.com/doc-2.0/guide-assets.html имеется раздел Compressing and combining assets и теперь минификация и сборка отдана в консоль, делаю по инструкции и не понимаю откуда берется файл /path/to/myapp/config/assets_compressed.php и что в нем должно быть. Возможно кто-то ткнет носом или подскажет в каком направлении гуглить?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение samdark »

Наберите в консоли yii help asset.
aquy
Сообщения: 48
Зарегистрирован: 2014.08.21, 09:35

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение aquy »

Sam Dark писал(а):Наберите в консоли yii help asset.
Ага, набирал, создал шаблон в консоли, в нем указал basePath и на сколько я понимаю для тестирования остальное можно оставить без изменений. А вот откуда берется bundleFile и что в него писать я не совсем понимаю, вернее догадываюсь что он должен быть похож на /assets/AppAsset.php но как его описать ума не приложу. Если это критично, то я использую basic

Хотя видимо не совсем так, создал пустой класс и стал ругаться на отсутствие компиляторов

Код: Выделить всё

namespace app\config;
class AllAssets extends \yii\web\AssetBundle
{

}
aquy
Сообщения: 48
Зарегистрирован: 2014.08.21, 09:35

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение aquy »

Вроде немного вопрос прояснился, в созданном конфиге указываем какие bundles нам нужно пожать, в targets указываем какой использовать файл, ну и вносим настройки (вот только пока не понимаю почему он не хочет использовать стандартный /assets/AppAssets.php ругается на @web указанный в нем, хотя вроде из конфига по сжатию должно переопределить было).

Но это все ладно, теперь главный вопрос как сделать так, чтобы минифицированный файл использовался в основном приложении, ручками указывать путь?
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение astronin »

у меня тоже вопрос возник по теме

можно ли только собирать файлы в месте без компресии? т.к. не всегда есть возможность ставить копрессоры на сервак.
aquy
Сообщения: 48
Зарегистрирован: 2014.08.21, 09:35

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение aquy »

astronin писал(а):у меня тоже вопрос возник по теме

можно ли только собирать файлы в месте без компресии? т.к. не всегда есть возможность ставить копрессоры на сервак.
а зачем их устанавливать? это же 2 jar файла, я их просто скопировал в директорию и указал к ним путь, но так или иначе ваш вопрос тоже интересен
aquy
Сообщения: 48
Зарегистрирован: 2014.08.21, 09:35

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение aquy »

Чтобы минифицированные файлы появились на исопльзуемых страницах нужно в конфиге приложения указать путь к сгенерированному php файлу, в моем случае так:

Код: Выделить всё

'assetManager' => [
            'bundles' => require '../assets/test.php',
        ],
Осталось разобраться как сделать так чтобы он не собирал на тестовом сервере и использовал стандартный AppAsset.php а на prod генерировал из этого AppAsset.php общую js и css
ruslant
Сообщения: 1
Зарегистрирован: 2015.03.13, 14:02

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение ruslant »

Сделал так. В файле /web/index.php

Код: Выделить всё

if(!YII_DEBUG)<===
    $config['components']['assetManager'] = ['bundles' => require '../config/assets_compressed.php'];<===
(new yii\web\Application($config))->run();
Aliraza951
Сообщения: 1
Зарегистрирован: 2015.04.20, 11:22

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение Aliraza951 »

подскажите как быть? и как в теле сеттера правильно будет произвести само присваивание, setAttribute('doc_id', $value) ????
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение samdark »

Aliraza951, ваш вопрос как-то относится к теме «Как собрать и минифицировать CSS и JS в Yii2?»?
Mirocow
Сообщения: 52
Зарегистрирован: 2011.12.05, 20:01
Контактная информация:

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение Mirocow »

Ищу работу: viewtopic.php?f=31&t=50584
GitHub: https://github.com/mirocow

Стоимость работ: от $30 час

тел/vbr/wsp: +7 (925) 514-63-53
skype/tlgrm: Mirocow
email: [email protected]

PHP Senior Developer aka Mirocow
Аватара пользователя
SmileMD
Сообщения: 4
Зарегистрирован: 2014.05.01, 13:18

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение SmileMD »

Здравствуйте,
не стану создавать новую тему, опишу проблему здесь, может кто-то подскажет как правильно сделать..

Использую yii2 advanced template, шаблоны(themes).
Разобрался как минифицировать css и js, а вот как их правильно подключать не совсем понятно.

структура:

/frontend/themes/
/frontend/themes/site/

/frontend/themes/site/assets/all-theme.css (минифицированный файл)
/frontend/themes/site/assets/all-theme.js (минифицированный файл)
/frontend/themes/site/assets/images/logo.jpg

/frontend/themes/site/views/..

Дальше assetmanager копирует ассеты в

/frontend/web/assets/758ffdc0/all-theme.css (минифицированный файл)
/frontend/web/assets/758ffdc0/all-theme.js (минифицированный файл)
/frontend/web/assets/758ffdc0/images/logo.jpg

Подскажите как правильно настроить 'baseUrl' в assets.php.

По дефолту 'baseUrl' => '@web/assets', что не совсем правильно.

Получаем <link href="/assets/all-theme.css" rel="stylesheet"> без /758ffdc0/
Mirocow
Сообщения: 52
Зарегистрирован: 2011.12.05, 20:01
Контактная информация:

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение Mirocow »

Ищу работу: viewtopic.php?f=31&t=50584
GitHub: https://github.com/mirocow

Стоимость работ: от $30 час

тел/vbr/wsp: +7 (925) 514-63-53
skype/tlgrm: Mirocow
email: [email protected]

PHP Senior Developer aka Mirocow
codercoder
Сообщения: 10
Зарегистрирован: 2015.10.28, 17:24

Re: Как собрать и минифицировать CSS и JS в Yii2?

Сообщение codercoder »

Подскажите, из-за чего после компрессии перестают работать секции $(document).ready?
Ответить