Загрузите зависимости композитора частного git-репозитория - PullRequest
0 голосов
/ 08 мая 2018

Я был немного озадачен тем, как Composer загружает зависимости проекта частного репозитория. Я нашел эту ссылку, но я не уверен, что этот комментарий относится к вложенным репозиториям или просто к какой-либо зависимости от репозитория. Чтобы прояснить мою ситуацию:

  1. У меня есть частный репозиторий git, который я пытаюсь добавить в качестве зависимости для проекта.
  2. Частный репозиторий git также является проектом composer, который содержит composer.json, который требует общедоступных пакетов.

У меня есть следующий код в моем composer.json для проекта.

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "{vendor}/{package-name}",
            "version": "{arbitrary-version}",
            "type": "package",
            "source": {
                "url": "git@github.com:{github-username}/{github-repository}.git",
                "type": "git",
            }
        }
    }
]
"require": {
    "{vendor}/{package-name}": "^0.0.1"
}

Таким образом, если я сделаю composer update для проекта после этих изменений, он успешно загрузит мой пакет из частного репозитория, но не вызовет проверку / обновление файла composer.json частного репозитория - поэтому нет Папка vendor создана, а критические зависимости не установлены. Частный репозиторий composer.json находится ниже:

{
    "name": "{vendor}/{package-name}",
    "description": "{removed}",
    "type": "library",
    "require": {
        "illuminate/database": "^5.6",
        "chumper/zipper": "1.0.x",
        "symfony/debug": "^4.0",
        "vlucas/phpdotenv": "^2.4"
    },
} 

Итак, мой вопрос: возможно ли то, что я хочу сделать с помощью частного репозитория через композитора, и если да, кто-нибудь знает, где я ошибаюсь?

1 Ответ

0 голосов
/ 08 мая 2018
Тип

package предназначен для некомпозиционных зависимостей. Если вы используете этот тип, Composer даже не будет искать файл composer.json внутри определенного источника пакета, вам нужно включить всю необходимую информацию о пакете внутри объявления пакета в вашем проекте composer.json:

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "{vendor}/{package-name}",
            "description": "{removed}",
            "type": "library",
            "require": {
                "illuminate/database": "^5.6",
                "chumper/zipper": "1.0.x",
                "symfony/debug": "^4.0",
                "vlucas/phpdotenv": "^2.4"
            },
            "version": "{arbitrary-version}",
            "source": {
                "url": "git@github.com:{github-username}/{github-repository}.git",
                "type": "git",
            }
        }
    }
]

Но в вашем случае (у вас есть пакет с правильным composer.json), вы должны использовать vcs тип:

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