如何降级我的依赖项版本的依赖项 [composer]

use*_*265 8 php git updates composer-php

composer update最近做了。但是我完全不喜欢我得到的依赖项的新版本。我会说我不喜欢我的依赖项的依赖项,它更准确。除了从 git 历史记录中获取之外,还有什么方法可以回滚吗composer.lock

cwe*_*ske 6

没有直接的方法来降级依赖项的依赖项;这需要一些工作:

  1. 需要所需版本的包

    composer require aws/aws-sdk-php=3.158.17
    
    Run Code Online (Sandbox Code Playgroud)

    依赖关系将被降级。它还被添加到我们不想要的composer.json中,因为我们的应用程序不依赖于它。

  2. 只需使用“composer remove”删除依赖项即可将包升级到我们不需要的最新版本。

    因此,请手动删除 require 行composer.json并运行composer update nothing以更新 中的哈希值composer.lock


vin*_*ykt 2

我也遇到过类似的问题laravel/passport =7.5.1,这取决于league/oauth2-server ^7.0,需要lcobucci/jwt ^3.2.2。当时,lcobucci/jwt已更新到最新3.4版本。但这次突然的更新引入了bug,所以大家只好降级到3.3.*.

您可以覆盖所需的嵌套依赖项的版本,或者只需将其放在require顶级部分即可应用另一个版本号约束composer.json

    "require": {
        ...
        "lcobucci/jwt": "3.3.*"
    }
Run Code Online (Sandbox Code Playgroud)

然后不要忘记运行composer update lcobucci/jwt,因此它会安装正确版本的嵌套依赖项并更新 中的记录composer.lock