Laravel问题:如何安装依赖旧版本的第三方包?
解决 Laravel-Invoice 安装时的依赖冲突问题
嘿,这个问题我之前碰到过,本质就是版本依赖不兼容导致的,给你几个靠谱的解决方案:
问题根源
你现在用的 Laravel 是 v5.6.15,而你要装的 faustbrian/laravel-invoice ^1.1(实际是1.1.0版本)只支持 illuminate/support 5.4.* || 5.5.*——这俩版本和你当前的Laravel 5.6完全不匹配,所以Composer只能给出「要么删现有Laravel,要么放弃装这个包」的两难结论。
可行的解决方案
方案1:安装适配Laravel 5.6的包版本
这个包的1.2版本开始支持Laravel 5.6了,你直接指定版本安装就行:
composer require faustbrian/laravel-invoice:^1.2
这个方案是最推荐的,不用动你的框架版本,直接装兼容的包版本就行。
方案2:降级Laravel框架到5.5.x
如果你不想换包版本,也可以把Laravel降级到5.5系列,来匹配包的依赖:
composer require laravel/framework:5.5.* --no-update composer update
不过要注意,降级框架可能会影响其他已装包的兼容性,操作前记得备份代码和composer.lock文件。
方案3:尝试安装包的最新稳定版
如果上面俩方案都不合适,你可以试试装这个包的最新稳定版,一般新版本会适配更高版本的Laravel:
composer require faustbrian/laravel-invoice:^2.0
提醒一下:2.x版本可能有API变更,装完后最好对照包的文档调整下你的代码。
小技巧
安装前可以先跑composer show faustbrian/laravel-invoice看看这个包所有可用版本的依赖要求,这样能更精准地选到合适的版本。
内容的提问来源于stack exchange,提问作者Quantrill
相关产品推荐
相关产品推荐

