Как мне настроить мой пакет composer, чтобы он указывал на конкретный подкаталог репозитория?

у меня есть 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 с главной веткой?

1

Решение

Что бы ты ни бежал composer install на или composer require Обычно он помещается в каталог поставщика. Composer по сути владеет каталогом поставщиков. Существуют способы поместить эти элементы в другое место, но это противоречит цели композитора, которая заключается в том, чтобы помочь вам управлять изменениями версий во всех ваших взаимодействующих библиотеках.

Однако другой вариант — запустить composer create-project, По сути, это приведет к клонированию проекта, где бы вы ни сказали, а затем загрузит все в require раздел composer.json файл. Я предполагаю, что вам нужно два проекта, один для начальной установки всех каталогов, которые вы скажете своему пользователю запустить composer create-project on, а другой — просто каталог начальной загрузки, который вам потребуется в файле composer.json первого проекта и который будет помещен в / vendor / alexweissman / bootsole. Вам нужно будет изменить свой код, чтобы найти там каталог начальной загрузки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]