Laravel 5.6 composer не устанавливает зависимости моего пакета - PullRequest
0 голосов
/ 10 мая 2018

Когда я использую команду «composer require x / y» внутри моего пользовательского пакета, все готово.Превосходное получение всех зависимостей.

Но когда я пытаюсь добавить в проект laravel из репозитория bitbucket, устанавливаю только мой пакет без всех зависимостей.

Я установил свой личный репозиторий в файл laravel composer.json

"repositories": {
    "hooks": {
        "type":"package",
        "package": {
            "name": "x/y",
            "version":"1.0.2",
            "source": {
                "url": "https://{username}@bitbucket.org/x/y.git",
                "type": "git",
                "reference": "master"
            }
        }
    }
}

Мой пользовательский репозиторий composer.json

{
        "name": "x/y",
        "description": "Base Api System",
        "license": "MIT",
        "require": {
            "php": "^7.2",
            "tcg/voyager": "^1.1",
            "predis/predis": "1.1",
            "monarobase/country-list": "^2.0"
        },
        "require-dev": {
        },
        "autoload": {
            "psr-4": {
                "X\\Y\\": "src/"
            }
        },
        "minimum-stability": "dev",
        "extra": {
            "laravel": {
                "providers": [
                    "X\\Y\\XYServiceProvider"
                ]
            }
        }
    }

Композитор требует вывода

Using version ^1.0 for x/y
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing x/y (1.0.2): Cloning master from cache
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nunomaduro/collision
Package manifest generated successfully.

1 Ответ

0 голосов
/ 11 мая 2018

Вы неправильно используете package. Этот тип предназначен для некомпозитных пакетов. Composer даже не будет смотреть на файл composer.json в такой зависимости, поскольку предполагает, что этот файл не существует. Вся соответствующая информация о пакете должна быть в определении пакета в настройках repositories в composer.json основного (корневого) приложения.

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

"repositories": [
    {
        "type":"git",
        "url": "https://{username}@bitbucket.org/x/y.git"
    }
]
...