bower вместо bower-asset

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

bower вместо bower-asset

Сообщение New_Wind » 2015.03.21, 01:51

Добрый день. Помогите разобраться с такой проблемой.

Для новоразрабатываемого сайта поставил через composer Yii2.
composer.phar require --prefer-dist yiisoft/yii2 "*"
Мне надо использовать некоторые рессурсы, которые поставляются вместе с Yii2.

В assets/AppAsset.php добавляю зависимости:

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

    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
После чего получаю ошибку:
Invalid Parameter – yii\base\InvalidParamException
The file or directory to be published does not exist: F:\home\mysite\vendor\bower/jquery/dist
Но то, что ищет движок в vendor/bower находится там, куда всё поставил composer, а имеенно в vendor/bower-asset.
Если вручную переименовать директорию то зависимости для рессурсов подтягиваются, но понимаю, что то что находится в vendor вручную править нельзя.

Значит пути решения два:
1. заставить composer ставить bower-пакеты в vendor/bower а не vendor/bower-asset;
2. или заставить Yii2 искать зависимости ресурсов в vendor/bower-asset.

Как это сделать? Или же есть другое решение?

padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: bower вместо bower-asset

Сообщение padlyuck » 2015.03.21, 02:21

composer create-project --prefer-dist yiisoft/yii2-app-basic basic установит базовый скелет в папку basic. для установки другого скелета замените yii2-app-basic на yii2-app-advanced, хотя вы правы, странность с composer require yiisoft/yii2 имеет место быть. Возможно более опытные коллеги пояснят.

lynicidn
Сообщения: 2221
Зарегистрирован: 2014.05.24, 15:12

Re: bower вместо bower-asset

Сообщение lynicidn » 2015.03.21, 02:43

php composer.phar global require "fxp/composer-asset-plugin:1.0.0"

padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: bower вместо bower-asset

Сообщение padlyuck » 2015.03.21, 02:54

lynicidn писал(а):php composer.phar global require "fxp/composer-asset-plugin:1.0.0"
а вы после этой команды пробовали выполнить команду о которой писал топикстартер? у меня результат при fxp/composer-asset-plugin (v1.0.0-beta2) и при fxp/composer-asset-plugin (v1.0.0) ровно такой же как и у него. похоже на баг...

Аватара пользователя
ElisDN
Сообщения: 5428
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: bower вместо bower-asset

Сообщение ElisDN » 2015.03.21, 08:48

padlyuck писал(а):а вы после этой команды пробовали выполнить команду о которой писал топикстартер?
Пробовал вчера с установленным composer на Debian:

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

sudo composer self-update
composer global require "fxp/composer-asset-plugin:1.0.0"
rm -rf vendor
composer install
Главное global require из того же пользователя делать, для которого надо выполнить install, а не из под рута.

padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: bower вместо bower-asset

Сообщение padlyuck » 2015.03.21, 13:15

@ElisDN попробуйте выполнить команду composer require --prefer-dist yiisoft/yii2 при отсутствии composer.json

Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: bower вместо bower-asset

Сообщение New_Wind » 2015.03.21, 19:33

lynicidn писал(а):php composer.phar global require "fxp/composer-asset-plugin:1.0.0"
Проблему не решило.

padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: bower вместо bower-asset

Сообщение padlyuck » 2015.03.21, 19:38

А почему вы таким образом ставите yii, не через create-project

Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: bower вместо bower-asset

Сообщение New_Wind » 2015.03.21, 20:00

Пробую и
php composer.phar require yiisoft/yii2-app-advanced "*"
и с чистого листа
php composer.phar require yiisoft/yii2-app-basic "*"
В обоих случаях bower-пакеты устанавливаются в vendor/bower-asset

Аватара пользователя
ElisDN
Сообщения: 5428
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: bower вместо bower-asset

Сообщение ElisDN » 2015.03.21, 20:06

Не require попробуйте, а create-project.

padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: bower вместо bower-asset

Сообщение padlyuck » 2015.03.21, 20:09

@New_Wind Вы так пробовали делать?
padlyuck писал(а):composer create-project --prefer-dist yiisoft/yii2-app-basic basic установит базовый скелет в папку basic. для установки другого скелета замените yii2-app-basic на yii2-app-advanced, хотя вы правы, странность с composer require yiisoft/yii2 имеет место быть. Возможно более опытные коллеги пояснят.

lynicidn
Сообщения: 2221
Зарегистрирован: 2014.05.24, 15:12

Re: bower вместо bower-asset

Сообщение lynicidn » 2015.03.21, 20:19

событие комрозера не выполнятеся postCreateProject или как там оно, которое с extra и работает как раз, думаю через create-project проблемы не будет

dmeroff
Сообщения: 101
Зарегистрирован: 2012.06.05, 14:32
Откуда: Петрозаводск
Контактная информация:

Re: bower вместо bower-asset

Сообщение dmeroff » 2015.03.21, 21:11

По-умолчанию, asset плагин ставит пакеты в {asset-type}-asset (bower-asset и npm-asset соответственно). Это можно изменить, указав соответствующие настройки в composer.json, что и сделано по-умолчанию в Yii.

Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: bower вместо bower-asset

Сообщение New_Wind » 2015.03.21, 22:23

Да, в случае
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
всё работает.

Но есть ли возможность заставить ставить дист в текущую директорию, из которой запускаю composer? Ругается на то, что директория не пуста (ведь там есть сам composer).

Делаю
composer create-project --prefer-dist yiisoft/yii2-app-basic ./
Ругается:
[InvalidArgumentException]
Project directory ./ is not empty.

lynicidn
Сообщения: 2221
Зарегистрирован: 2014.05.24, 15:12

Re: bower вместо bower-asset

Сообщение lynicidn » 2015.03.21, 22:29

composer create-project --prefer-dist yiisoft/yii2-app-basic .

lynicidn
Сообщения: 2221
Зарегистрирован: 2014.05.24, 15:12

Re: bower вместо bower-asset

Сообщение lynicidn » 2015.03.21, 22:29

установит в yii2-app-basic папку

Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: bower вместо bower-asset

Сообщение New_Wind » 2015.03.21, 22:41

Нет, если с точкой в конце, то будет пытаться устанавливать в текущую (но не сможет), а если вообще не указывать названия директории, то создаст yii2-app-basic и установит в него.

Мне же надо в текущую, где уже стоит composer.

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: bower вместо bower-asset

Сообщение zelenin » 2015.03.21, 22:47

New_Wind писал(а):Нет, если с точкой в конце, то будет пытаться устанавливать в текущую (но не сможет), а если вообще не указывать названия директории, то создаст yii2-app-basic и установит в него.

Мне же надо в текущую, где уже стоит composer.
не должно там быть композера. установите composer глобально - это инструмент, а не зависимость для проекта.

Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: bower вместо bower-asset

Сообщение New_Wind » 2015.03.21, 23:04

Хм, спасибо.

padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: bower вместо bower-asset

Сообщение padlyuck » 2015.03.21, 23:06

да даже если человек не хочет ставить его глобально, кто мешает установить проект в папку, а потом содержимое этой папки переместить на уровень выше? Композер на сколько мне известно нигде не прописывает абсолютных путей.

Ответить