我在作曲器中使用path有本地存储库包,它们仍在开发中。问题是,它给了我一个安装它的错误。
错误信息:
加载包含包信息的
作曲家存储库 更新依赖项(包括 require-dev)
您的要求无法解析为一组可安装的包。问题1:
- 供应商/软件包 B * -> 的安装请求可由供应商/软件包 B[dev-master] 满足。
- 供应商/包B 开发大师需要供应商/包开发大师 ->找不到匹配的包。
潜在原因:
- 包名称中的拼写错误
- 根据您的最低稳定性设置,该软件包没有足够稳定的版本
所以为了解释我所拥有的,请考虑一下。
第一个包安装称为包 A 的依赖项。每件事都按预期工作。 请参阅下面的composer.json
文件摘录:
[
"name": "vendor/packageB",
"repositories": [
{
"type": "path",
"url": "/vendor/packageA/"
}
],
"require": {
"vendor/packageA": "*"
},
"minimum-stability": "dev"
]
第二个包,我想安装包B及其依赖项(在本例中为包A)。这是在这里它给出了一个错误。 请参阅下面的composer.json
文件摘录:
[
"name": "vendor/packageC",
"repositories": [
{
"type": "path",
"url": "/vendor/packageB/"
}
],
"require": {
"vendor/packageB": "*"
},
"minimum-stability": "dev"
]
可能无法在作曲器中使用本地开发依赖项,目前我不太清楚。
所以,我的怀疑是,这与以下方面有关:
">- 最小稳定性",可能是因为这都是"开发"?
- 还是因为我使用的是本地软件包(不在 packagist 或 github 上)?
- 还是其他东西(除了错别字:))?
当我放置包A时,我已经设法安装了它,也作为包B的依赖项。这是我发现它起作用的唯一方法。
感谢您的任何帮助!
此问题在作曲家常见问题解答中进行了描述。 https://getcomposer.org/doc/faqs/why-can't-composer-load-repository-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"
]