-->

作曲家不满足要求(Composer unsatisfied requirement)

2019-10-22 09:11发布

在一个作曲家设置我需要vendor/package-Avendor/package-B

程序包B建立在包A和具有限定在其composer.json的要求。

直接安装基本套餐A工作正常。 其他要求从Packagist解决,包本身正确地从私人仓库拉。

然而,仅安装包B(那么这也应该在拉包A由于要求)时,我得到以下错误:

Your requirements could not be resolved to an installable set of packages.

Problem 1
  - Installation request for vendor/package-B dev-master@dev -> satisfiable by vendor/package-B[dev-master].
  - vendor/package-B dev-master requires vendor/package-A dev-master@dev -> no matching package found.

两种封装没有任何标记的版本,并在开发主机版本操作。

有我俯瞰的东西吗?


编辑

对于那些有兴趣在该解决方案,这是从我从下面所选择的答案教训的总结。

基本上,三种方法存在让安装深DEV-主的依赖。 在最值得推荐的顺序为:

  1. 标签所有版本和使用标记的版本约束,而不是到处DEV-大师。 (其实我结束了做这个!)

  2. 在您的应用程序的composer.json ,增加一个额外的使用需要重点@dev标志你在开发中所需要的相应的subdepencency:

     { "require": { "vendor/package-B": "dev-master", "vendor/package-A": "@dev" } } 

    这样,您就基本上白名单特定subdependency用作开发。

  3. 在您的应用程序的composer.json ,加上minimum-stabilityprefer-stable键如下。

     { "minimum-stability": "dev", "prefer-stable" : true } 

    在这最后的方法降低你的稳定性约束为dev,但是你也设置,如果一个稳定的版本,你会更喜欢一个来代替。 在大多数情况下,这将产生想要的行为,但有时也可以是古怪。

Answer 1:

这是一个稳定的解析问题。

对于这种情况最好的解决方法是开始标记您的版本

您可以定义"minmum-stability":"dev"

这将设置下限,并允许“开发”包所有包。

您已明确定义dev-master@dev 。 我不知道,这是真正需要的。

这说明您的情况: https://igor.io/2013/02/07/composer-stability-flags.html



文章来源: Composer unsatisfied requirement