先运行composer prohibits定位冲突源,再降级冲突包或用--no-update+--with-all-dependencies安全更新;--ignore-platform-reqs对依赖冲突无效,删composer.lock仅重解析而非强制安装。

没有“忽略版本”的命令,所有所谓“强制安装”都是在改输入、换路径、删约束——用错方式,不是装不上,而是装上后运行时报错。
composer require 报 “Conclusion: don’t install X” 怎么办
这不是网络或权限问题,是 Composer 的 SAT 求解器确认当前依赖图无解:别的包硬性要求旧版,你塞的新版本和它冲突。
- 先查谁在拦:
composer prohibits vendor/package:v3.2.0,输出会直接告诉你哪个包的哪条require导致冲突 - 安全做法:降级那个冲突包,再跑
composer update conflicting-package - 临时绕过:先
composer require vendor/package:v3.2.0 --no-update写进composer.json,再执行composer update vendor/package --with-all-dependencies - 别碰
--ignore-platform-reqs——它对依赖冲突完全无效,只管 PHP 版本和扩展
想装 dev-main 却失败?不是参数问题,是写法和配置没对齐
Composer 对分支名极其较真,大小写、前缀、斜杠必须和远程仓库完全一致,且默认不认 dev- 开头的开发分支。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 分支必须写成
dev-main(不能是main、Dev-Main或dev/master) - 项目
minimum-stability默认是stable,会直接过滤掉dev-main;需在根composer.json加:"minimum-stability": "dev", "prefer-stable": true
- 私有仓库或非 Packagist 源,必须显式声明
repositories:"repositories": [ { "type": "vcs", "url": "https://github.com/vendor/repo" } ] - 要持续跟踪分支更新,必须加
--prefer-source:composer require vendor/name:dev-main --prefer-source;否则默认走--prefer-dist,只下载一次 zip 快照
怎么让 composer require 真正重下某个包
缓存是最大干扰项。只清缓存或只加 --no-cache 都不够,必须双清+重建目录。
- 最稳单包重装法:删掉对应目录,再
composer install- Linux/macOS:
rm -rf vendor/guzzlehttp/guzzle - Windows (PowerShell):
Remove-Item -Recurse -Force vendor\guzzlehttp\guzzle - 确认
composer.lock未被修改(git status看一眼),再执行composer install
- Linux/macOS:
- 清配置再装更干净:
composer remove guzzlehttp/guzzle→composer clear-cache→composer require guzzlehttp/guzzle -
--no-cache必须配合composer clear-cache才有效;否则 Composer 仍可能从本地缓存解压旧 ZIP
为什么删了 composer.lock 还装不出想要的版本
删锁文件只是让 Composer 重新解析 composer.json,但最终选哪个版本,取决于所有依赖的“最大公共交集”,不是你写的字面版本号。
- 写了
"symfony/console": "5.4.36"却装了5.4.35?说明其他依赖要求的版本范围交集里,5.4.35是唯一满足全部约束的 - 想锁定精确版本,得用伪版本语法:
"vendor/package": "1.2.3 as 2.0.0",用as声明“对外宣称是 2.0.0”,骗过依赖它的包 - 删锁后结果不可预测,尤其当多个小版本都满足
^3.0时,Composer 可能选最新 patch,也可能回退到某个稳定小版本——这点极易被忽略,上线前务必验证










