bootstrap.less в yii2

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
@vasily
Сообщения: 7
Зарегистрирован: 2017.03.16, 11:48

bootstrap.less в yii2

Сообщение @vasily »

Добрый день.
Прошу помочь разобраться!
Как настраивать предустановленный bootstrap3 через less файлы?
Пытаюсь разобраться в basic версии.
Интересует вопрос именно о кастамизации через less, а не о подсовывании своей сборки.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: bootstrap.less в yii2

Сообщение samdark »

Примерно как на https://github.com/yiisoft-contrib/yiiframework.com сделано. Может чуть проще, если не брать gulp и запилить на grunt.
@vasily
Сообщения: 7
Зарегистрирован: 2017.03.16, 11:48

Re: bootstrap.less в yii2

Сообщение @vasily »

не понял куда смотреть в указанной ссылке.
Прошу разжевать подробней.
Как я понимаю в basic поставку уже включены less файлы bootstrap в папке vendor\bower-asset\bootstrap\less, но yii2 использует файл из vendor\bower-asset\bootstrap\dist,
как настроить yii2, чтобы автоматически компилировался bootstrap.css.
На сколько я понимаю - это не должно быть намного сложнее и более трудоемким, чем делать свою сборку на сайте bootstrap и переопределять BootstrapAsset.

Не знаю влияет ли на что-нибудь, у меня
win8+wampserver64+yii2-basic
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: bootstrap.less в yii2

Сообщение samdark »

Смотрите на то, что дал последней ссылкой Евгений Емельянов.
@vasily
Сообщения: 7
Зарегистрирован: 2017.03.16, 11:48

Re: bootstrap.less в yii2

Сообщение @vasily »

Направление понял, но споткнулся на следующем, при выполнении
создал файл @web/css/style.less

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

@baseFontSize: 20px;

body {
	font-size: @baseFontSize;
}
в web.php

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

        'assetManager' => [
			'appendTimestamp' => true,
            'converter' => [
                'class' => 'yii\web\AssetConverter',
                'commands' => [
                    'less' => ['css', 'lessc {from} {to} --no-color'],
                ],
            ],
        ],
в AppAsset.php

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

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/style.less',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}
в итоге получил

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

"lessc" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
что делать дальше не очень понимаю...
@vasily
Сообщения: 7
Зарегистрирован: 2017.03.16, 11:48

Re: bootstrap.less в yii2

Сообщение @vasily »

Разобрался, при установке, nodejs был установлен в c:\program files\nodejs, а lessc установился в users\Roaming и локальная служба, под которой запущен web сервер, его не видела -
перенес в папку nodejs и заработало.

Дальше - больше...
Скачал сборку bootstrap положил в корень, в web.php добавил:

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

	...
            'bundles' => [
                'yii\bootstrap\BootstrapAsset' => [
                    'sourcePath' => '@app/bootstrap/less',
                    'css' => [
                        'bootstrap.less',
                    ],
                ],
                'yii\bootstrap\BootstrapPluginAsset' => [
                    'sourcePath' => '@app/bootstrap/dist/js',
                    'js' => ['bootstrap.js']
                ],
            ],
	...
Первый раз компиляция выполняется, bootstrap.css включается в результирующий документ, далее - я полагал - при изменении bootstrap.less должен пересобираться bootstrap.css, но это не происходит.
Что я делаю не так или что не делаю?
То есть вопрос - как заставить yii пересобирать bootstrap.less при изменении?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: bootstrap.less в yii2

Сообщение samdark »

Попробуйте симлинки включить.
@vasily
Сообщения: 7
Зарегистрирован: 2017.03.16, 11:48

Re: bootstrap.less в yii2

Сообщение @vasily »

Где и как?
С самого начала в корень проекта добавил .htaccess

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

...
Options +FollowSymLinks
...
оно или в @web то же надо добавить или это вообще не то?
@vasily
Сообщения: 7
Зарегистрирован: 2017.03.16, 11:48

Re: bootstrap.less в yii2

Сообщение @vasily »

как узнать включены ли симлинки?
Аватара пользователя
proctoleha
Сообщения: 298
Зарегистрирован: 2016.07.10, 19:00

Re: bootstrap.less в yii2

Сообщение proctoleha »

В конфиг файле

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

[
    'components' => [
	...
        'assetManager' => [
            'linkAssets' =>  true,
            'appendTimestamp' => true,
        ],
	...
];
Но под виндой 'linkAssets' => true, не работает. От слова совсем. Потому что linux not windows
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: bootstrap.less в yii2

Сообщение chungachguk »

proctoleha писал(а): 2018.03.27, 06:53 Но под виндой 'linkAssets' => true, не работает. От слова совсем. Потому что linux not windows
However, there are special requirements for hosting environments in order to use symbolic links. In particular, symbolic links are supported only on Linux/Unix, and Windows Vista/2008 or greater.
https://www.yiiframework.com/doc/api/2. ... ets-detail
Ответить