我在composer中有使用path的本地存储库包,它们仍在开发中。问题是,安装它时出错了。
错误讯息:
使用包信息装载作曲家存储库
更新依赖项(包括require-dev)
您的要求无法解析为可安装的软件包。问题1:
- 供应商/包B *的安装请求 - >供应商/ packageB [dev-master]可以满足。
- vendor / packageB dev-master需要vendor / packageA dev-master - >找不到匹配的包。
潜在原因:
- 包名称中的拼写错误
- 根据您的最小稳定性设置
,包装不具备足够稳定的版本
所以要解释一下,请考虑一下。
第一个包,安装名为packageA的依赖项。每件事都按预期工作。
请参阅以下composer.json
文件的摘录:
[
"name": "vendor/packageB",
"repositories": [
{
"type": "path",
"url": "/vendor/packageA/"
}
],
"require": {
"vendor/packageA": "*"
},
"minimum-stability": "dev"
]
第二个包,我想安装packageB及其依赖项(在本例中为packageA)。这是在这里它给出了一个错误。
请参阅以下composer.json
文件的摘录:
[
"name": "vendor/packageC",
"repositories": [
{
"type": "path",
"url": "/vendor/packageB/"
}
],
"require": {
"vendor/packageB": "*"
},
"minimum-stability": "dev"
]
可能在作曲家中不可能使用本地开发依赖项,目前我不是很清楚。
所以,我的怀疑是,这与某事有关:
当我放入packageA时,我已经设法安装它,也作为packageB的依赖。这是我发现它有效的唯一方法。
感谢您的帮助!
答案 0 :(得分:0)
此问题在作曲家常见问题解答中有所描述。 https://getcomposer.org/doc/faqs/why-can't-composer-load-repositories-recursively.md
在您的情况下,这意味着packageC
的composer.json必须包含信息,以便在哪里找到packageA
的存储库:
[
"name": "vendor/packageC",
"repositories": [
{
"type": "path",
"url": "/vendor/packageB/"
},
{
"type": "path",
"url": "/vendor/packageA/"
}
],
"require": {
"vendor/packageB": "*"
},
"minimum-stability": "dev"
]