当你查看日志时,你可以看到这个,这没有任何意义:
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。
似乎是作曲家中的一个错误。
这有效:
"require-dev": {
"meridius/coding-standard": "*",
"squizlabs/php_codesniffer": "^2.5"
},
这不起作用:
"require-dev": {
"squizlabs/php_codesniffer": "^2.5",
"meridius/coding-standard": "*"
},
据我所知,作曲家的要求顺序应该无关紧要(有人可能会证实这一点)。将其报告为错误。