如何通过Composer版本约束规则检测依赖兼容性?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1133个文字,预计阅读时间需要5分钟。
这不是包未下载完,而是Composer在尝试满足某个require约束时卡住了。不要急,直接删除vendor/或composer.lock,然后运行composer -v重跑。
composer install -v
重点盯住这几类输出:
- 形如
Root composer.json requires monolog/monolog ^2.4, but 2.4.0 conflicts with package-x的冲突主句 - 所有带
requires的嵌套链条,比如laravel/framework 10.42.0 requires php ^8.1→your-project requires php ^7.4 - 末尾的
Conclusion: don't install X行——它不是结论,是求解器放弃前的最后一搏,真正原因藏在上面几百行里
composer why-not vendor/package:version 能查什么、不能查什么
composer why-not 是定位“某个具体版本为何不可用”的最快方式,但它只回答“为什么这个版本装不上”,不回答“哪个包在锁死它”。
本文共计1133个文字,预计阅读时间需要5分钟。
这不是包未下载完,而是Composer在尝试满足某个require约束时卡住了。不要急,直接删除vendor/或composer.lock,然后运行composer -v重跑。
composer install -v
重点盯住这几类输出:
- 形如
Root composer.json requires monolog/monolog ^2.4, but 2.4.0 conflicts with package-x的冲突主句 - 所有带
requires的嵌套链条,比如laravel/framework 10.42.0 requires php ^8.1→your-project requires php ^7.4 - 末尾的
Conclusion: don't install X行——它不是结论,是求解器放弃前的最后一搏,真正原因藏在上面几百行里
composer why-not vendor/package:version 能查什么、不能查什么
composer why-not 是定位“某个具体版本为何不可用”的最快方式,但它只回答“为什么这个版本装不上”,不回答“哪个包在锁死它”。

