Laravel 5.4.36升级5.5.0时出现Composer依赖冲突报错
问题根因
依赖解析失败的核心原因是当前配置的第三方包版本不兼容Laravel 5.5:你引入的graham-campbell/htmlmin ^4.5仅支持Laravel 5.1~5.4版本,它依赖的illuminate/support版本范围不覆盖5.5,而Laravel 5.5框架本身已经内置替换了illuminate/support组件,版本要求冲突导致composer无法完成依赖解析。
除此之外你现有composer.json里还有几处隐藏的版本兼容问题,就算解决htmlmin的冲突,后续也会触发其他报错。
解决步骤
- 修改
composer.json中不兼容的依赖版本约束:- 将require段的
"graham-campbell/htmlmin": "^4.5"改为"graham-campbell/htmlmin": "^5.0",该版本正式适配Laravel 5.5 - 将require段的
"roumen/sitemap": "^2.6"改为"roumen/sitemap": "^2.7",2.7及以上版本支持Laravel 5.5 - 将require-dev段的
"laravel/browser-kit-testing": "1.*"改为"laravel/browser-kit-testing": "^2.0",1.x版本仅兼容Laravel 5.4 - 将require-dev段的
"symfony/css-selector": "3.1.*"、"symfony/dom-crawler": "3.1.*"均改为"3.3.*",匹配Laravel 5.5依赖的symfony组件版本要求
- 将require段的
- 删除本地旧的依赖文件和锁文件,避免旧版本缓存干扰解析:
rm -rf vendor composer.lock
- 重新执行依赖安装命令:
composer install
如果执行过程中出现其他依赖报错,按照报错提示将对应第三方包升级到支持Laravel 5.5的版本即可,所有第三方扩展包的版本约束不能停留在仅支持Laravel 5.4的区间。
- 依赖安装完成后,完成Laravel 5.5升级要求的其余配置、代码调整,最后执行缓存清理命令:
php artisan config:clear php artisan view:clear php artisan route:clear
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

