Загрузите две пользовательские библиотеки - PullRequest
0 голосов
/ 31 января 2019

У меня возникли проблемы с использованием Composer для загрузки пользовательской библиотеки из другой пользовательской библиотеки


У меня есть 2 пользовательские библиотеки с именами "ia / audit_trail" и "ia / flash".И "ia / audit_trail" для работы требуется "ia / flash".

audit_trail: https://github.com/pierrererot/audit_trail

flash: https://github.com/pierrererot/flash

Итак, у меня установлено свойство require для вызова другого.Ничего особенного, НО, когда я запускаю простой composer update -vvv в своем основном проекте, я получаю эту ошибку:

Ваши требования не могут быть разрешены для устанавливаемого набора пакетов.
Проблема 1
- Запрос на установку ia / audit_trail_component ~ 1.0.0 -> выполняется ia / audit_trail_component [1.0.0].
- ia / audit_trail_component 1.0.0 требует ia / flash_component ~ 1.0.0 -> нет соответствующего пакетанайденный.

Возможные причины:
- Опечатка в имени пакета
- Пакет недоступен в достаточно стабильной версии в соответствии с настройкой минимальной стабильности
см. https://getcomposer.org/doc/04-schema.md#minimum-stability для получения более подробной информации.
- Это частный пакет, и вы забыли добавить пользовательский репозиторий, чтобы найти его

Прочитайте https://getcomposer.org/doc/articles/troubleshooting.md для дальнейших распространенных проблем ...

НО, если я помещу эти две библиотеки непосредственно в мой основной проект (так что, если одна библиотека не нуждается в другой библиотеке), это работает!


Вот composer.json моего основного проекта:

{
    "require": {
        "ia/audit_trail_component": "1.0.0"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/pierrererot/audit_trail.git"
        }
    ]
}

Хорошо.Поэтому мне потребовалась моя специальная библиотека "aud_trail".Итак, вот composer.json моей пользовательской библиотеки "audit_trail":

{
    "name": "ia/audit_trail_component",
    "version": "1.0.0",
    "type": "library",
    "require": {
        "ia/flash_component": "1.0.0"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/pierrererot/flash.git"
        }
    ],
    "minimum-stability": "dev"
}

Хорошо.Поэтому мне потребовалась моя специальная библиотека "flash".И вот, вот composer.json моей пользовательской «флэш» библиотеки:

{
    "name": "ia/flash_component",
    "version": "1.0.0",
    "description": "Flash Component",
    "type": "library",
    "minimum-stability": "dev"
}

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

==> У кого-нибудь есть подсказка, пожалуйста?

Прежде чем вы спросите, я уточню следующие вещи:

  • В обеих библиотеках есть "dev"и ветвь "master" помещена в их репозитории Git

  • Обе библиотеки имеют минимальный тег 1.0.0, помещенный в репозитории Git

1 Ответ

0 голосов
/ 31 января 2019

repositories параметр доступен только для пользователя root - Composer будет игнорировать этот параметр для всех зависимостей и использовать только эти репозитории, определенные в вашем основном проекте.

Репозитории доступны только для корневого пакета, и репозитории, определенные в ваших зависимостях, не будут загружены.Прочитайте запись FAQ , если хотите узнать почему.

https://getcomposer.org/doc/05-repositories.md#repository

Поэтому вам необходимо добавить все необходимые репозитории в composer.json изВаш главный проект:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/pierrererot/audit_trail.git"
    },
    {
        "type": "vcs",
        "url": "https://github.com/pierrererot/flash.git"
    }
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...