Composer无法解决要求

时间:2016-04-24 18:20:29

标签: composer-php

当你看log时,你可以看到这一点,这没有任何意义:

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

  Problem 1
    - meridius/coding-standard 1.0.0 requires consistence/coding-standard ^0.10.1 -> satisfiable by consistence/coding-standard[0.10.1].
    - meridius/coding-standard 1.0.1 requires consistence/coding-standard ^0.10.1 -> satisfiable by consistence/coding-standard[0.10.1].
    - Conclusion: don't install consistence/coding-standard 0.10.1
    - Installation request for meridius/coding-standard * -> satisfiable by meridius/coding-standard[1.0.0, 1.0.1].

我尝试构建的项目有"squizlabs/php_codesniffer": "^2.5""meridius/coding-standard": "^1"作为要求。在这些情况下,更新正常:

  • 如果我删除上述任何一项要求,请清除供应商并更新
  • 如果我删除上述任何一项要求,请清除供应商,更新再次添加已删除的要求并进行更新

我不明白为什么第二种情况有效但是当两种包都需要时它不会。

squizlabs/php_codesniffer的罪魁祸首似乎是consistence/coding-standard,而且正是我正在建设的项目。

如果我composer show -t | grep -C4 squizlabs/php_codesniffer我可以看到squizlabs/php_codesniffer需要多次,但所有版本限制对我来说都很好。

您可以看到composer.json here

1 个答案:

答案 0 :(得分:1)

似乎是Composer中的一个错误。

这有效:

"require-dev": {
    "meridius/coding-standard": "*",
    "squizlabs/php_codesniffer": "^2.5"
},

这不起作用:

"require-dev": {
    "squizlabs/php_codesniffer": "^2.5",
    "meridius/coding-standard": "*"
},

据我所知,作曲家的要求顺序无关紧要(有人可能会证实这一点)。 Report it as a bug