у меня есть Github хранилище, который я недавно представил Packagist. Каталог верхнего уровня моего репозитория выглядит следующим образом:
- строить /
- bootsole /
- Примеры/
- лицензии /
- скриншоты /
bootsole
подкаталог является фактическим каталогом, содержащим классы, которые управляются / автоматически загружаются композитором.
Я попытался создать новый проект, чтобы проверить пакет. в новый проект мой composer.json
как следует:
{
"require": {
"php": ">=5.4.0",
"alexweissman/bootsole": "0.2.0"}
}
я бегу composer install
и получает bootsole
и его зависимость, valitron
, Тем не менее, он помещает сапог в vendor/alexweissman/bootsole/
и, более того, он помещает весь репозиторий в этот каталог, а не только bootsole
подкаталог.
Можно ли настроить пакет так, чтобы он включал только содержимое подкаталога? bootsole
(то есть опустить build/
, examples/
, так далее)?
Обновить: Этот вопрос кажется, предполагает, что это невозможно (хотя вопрос на данный момент уже более года). Это говорит о том, что я говорю git игнорировать другие каталоги в архиве, что я бы предпочел не делать для разработчиков, которые не используют composer.
Возможно, есть способ создать отдельную ветку, которая содержит только bootsole/
подкаталог, указать Composer на эту ветку и каким-то образом автоматически синхронизировать ветку Composer с главной веткой?
Что бы ты ни бежал composer install
на или composer require
Обычно он помещается в каталог поставщика. Composer по сути владеет каталогом поставщиков. Существуют способы поместить эти элементы в другое место, но это противоречит цели композитора, которая заключается в том, чтобы помочь вам управлять изменениями версий во всех ваших взаимодействующих библиотеках.
Однако другой вариант — запустить composer create-project
, По сути, это приведет к клонированию проекта, где бы вы ни сказали, а затем загрузит все в require
раздел composer.json
файл. Я предполагаю, что вам нужно два проекта, один для начальной установки всех каталогов, которые вы скажете своему пользователю запустить composer create-project
on, а другой — просто каталог начальной загрузки, который вам потребуется в файле composer.json первого проекта и который будет помещен в / vendor / alexweissman / bootsole. Вам нужно будет изменить свой код, чтобы найти там каталог начальной загрузки.
Других решений пока нет …