У меня есть пакет в частном репозитории на github.
Когда я запускаю composer require my_vendor/my_package, пакет добавляется в composer.json и отображается в каталоге поставщика.
Когда я запускаю composer remove my_vendor/my_package, появляется предупреждение:
Package "my_vendor/my_package" listed for update is not installed. Ignoring.
Поэтому, когда я запускаю composer prohibits my_vendor/my_package, он говорит
Could not find package "my_vendor/my_package" in your project
Если я запускаю composer show (после запроса пакета), он не отображается в списке.
Этот пакет имеет зависимость (lexik / authenticationbundle), которая правильно установлена, удалена и отображается в списке установленных пакетов (но не указана в древовидном представлении, поскольку это зависимость несуществующего пакета) ...
Я понятия не имею, чем можно объяснить такое поведение.
Любое предложение?
редактировать (добавление содержимого composer.json)
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"api-platform/api-pack": "^1.1",
"composer/composer": "^1.6",
"symfony/console": "^4.1",
"symfony/flex": "^1.0",
"symfony/framework-bundle": "^4.1",
"symfony/lts": "^4@dev",
"symfony/orm-pack": "^1.0",
"symfony/web-server-bundle": "^4.1",
"symfony/yaml": "^4.1"
},
"require-dev": {
"symfony/dotenv": "^4.1"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/my_repo/my_package.git"
}
],
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"assets:install %PUBLIC_DIR%": "symfony-cmd",
"cache:clear": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-package-install": [
"App\\Utility\\Bootstrap\\Setup::execute",
"@auto-scripts"
],
"pre-package-uninstall": [
"App\\Utility\\Bootstrap\\Demolish::execute",
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"id": "01C1K60FQVPP7FCAC3YB6639RZ",
"allow-contrib": true
}
}
}
Кроме того, создание нового проекта и требование правильности пакета добавляет его в список установленных пакетов, поэтому его удаление работает нормально. Затем я попытался удалить файл блокировки и запустить обновление композитора, и в конце концов я попытался потребовать / удалить его, но безуспешно.
@dmnptr конечно, добавил




Похоже, что то, что мешало композитору правильно настроить требуемый пакет, было die() в сценарии post-package-install.
Удаление заявления решило проблему.
Покажите ваш
composer.jsonконтент там, где вам нужен ваш пакет.