Laravel 5.5升级至5.6时Composer依赖报错(PHPUnit相关)
解决Laravel 5.5升级到5.6时PHPUnit依赖解析错误的问题
我之前升级Laravel版本的时候也碰到过一模一样的PHPUnit依赖冲突问题,给你几个亲测有效的解决思路:
核心问题分析
从报错信息能看出来,早期的PHPUnit 7.0.x版本存在依赖冲突:它同时要求sebastian/comparator ^2.1和sebastian/diff ^3.0,但sebastian/comparator 2.1.x系列又依赖的是sebastian/diff ^2.0,这两个版本要求互相矛盾,导致Composer无法完成依赖解析。
解决步骤
锁定PHPUnit到稳定的7.5.x版本:Laravel 5.6官方推荐的PHPUnit版本是~7.0,但早期7.0.x的依赖bug在7.5版本已经修复。修改
composer.json里的require-dev字段:"require-dev": { // 其他依赖保持不变 "phpunit/phpunit": "~7.5" }清理Composer缓存:避免旧的依赖缓存干扰解析结果:
composer clear-cache针对性更新PHPUnit及相关依赖:执行更新时加上
--with-all-dependencies参数,强制更新关联的依赖包:composer update phpunit/phpunit --with-all-dependencies终极方案(如果以上无效):删除本地的
vendor文件夹和composer.lock文件,重新安装所有依赖:rm -rf vendor composer.lock composer install
内容的提问来源于stack exchange,提问作者C Taque
相关产品推荐
相关产品推荐

