使用Composer安装nesk/puphpeteer出现psr/log依赖版本冲突报错
问题现象
执行composer require nesk/puphpeteer命令安装扩展时触发依赖冲突报错,具体冲突逻辑如下:
- 项目根目录
composer.json要求引入nesk/puphpeteer2.0版本,该需求可由nesk/puphpeteer[2.0.0]满足 nesk/puphpeteer 2.0.0依赖psr/log ^1.0版本,当前包源中存在可匹配的psr/log[1.0.0, ..., 1.1.4]版本,但项目composer.lock文件已将psr/log锁定为3.0.0版本,版本约束不匹配。Composer默认不会自动调整已锁定的包版本,因此提示需要将冲突包列为update命令参数才可继续操作。
解决方法
安装时带上--with-all-dependencies(简写为-W)参数即可,该参数允许Composer在安装新包过程中,对当前锁定为特定版本的包执行升级、降级、移除操作,自动适配全链路依赖版本。
直接执行以下命令完成安装:
composer require nesk/puphpeteer:2.0 -W
操作提示:执行上述命令会自动调整
psr/log及其他关联依赖的版本以满足约束,执行前请确认项目中其他已安装的包不会因为psr/log降级到1.x版本出现兼容性问题。如果项目内有其他包强依赖psr/log3.0版本,需要更换兼容高版本psr/log的nesk/puphpeteer版本,不要强制降级引发运行错误。
内容的提问来源于stack exchange,提问作者Philippe
相关产品推荐
相关产品推荐

