Laravel 8 上的 League/flysystem-aws-s3-v3 其他软件包需要较低版本

Posted

技术标签:

【中文标题】Laravel 8 上的 League/flysystem-aws-s3-v3 其他软件包需要较低版本【英文标题】:league/flysystem-aws-s3-v3 on Laravel 8 other packages require lower version 【发布时间】:2021-03-08 04:12:55 【问题描述】:

运行composer require league/flysystem-aws-s3-v3 时,我得到:

league/flysystem-aws-s3-v3[2.0.0, ..., 2.x-dev] require league/flysystem ^2.0.0 -> found league/flysystem[2.0.0-alpha.1, ..., 2.x-dev] but the package is fixed to 1.1.3 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

在我的composer.json 中没有提到league/flysystem,但它确实以"league/flysystem": "^1.1", 出现在我的composer.lock 中。看起来我有几个包(如spatie/laravel-backup)将其作为依赖项。

我该如何进行?我不确定如何更新其他软件包作为依赖项的软件包,并且这些其他软件包也已固定为特定版本。

【问题讨论】:

【参考方案1】:

正如您已经发现的那样:spatie/laravel-backup 尚不兼容 league/flysystem v2(这是相当新的版本……昨天发布了!)。

只需通过 composer require league/flysystem-aws-s3-v3:"^1.0" 要求该 AWS 软件包的“旧”版本。

毕竟这不是 Laravel 本身的问题。

【讨论】:

【参考方案2】:

这是 Laravel 的问题。 Laravel v8 还不支持league/flysystem v2。 v9 将附带对它的支持:https://github.com/laravel/framework/pull/33612

【讨论】:

我刚刚通过 composer require League/flysystem 安装了 Laravel 9 和 League/flysystem,它安装得很好。【参考方案3】:

我使用的是最新版本的 laravel V8.4.0(2021 年 7 月)

我解决了这个问题:

    删除项目根目录下的composer.lock 正在运行composer require league/flysystem-aws-s3-v3:"~1.0"

【讨论】:

【参考方案4】:

对于 Laravel 8 使用

composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"

【讨论】:

以上是关于Laravel 8 上的 League/flysystem-aws-s3-v3 其他软件包需要较低版本的主要内容,如果未能解决你的问题,请参考以下文章

App Engine 上的 Laravel 8:“请提供有效的缓存路径”

Laravel 8 上的 HTTP RESTful API 功能测试

调用字符串上的成员函数 addEagerConstraints() - Laravel 8

枚举列laravel 8上的多项选择

CSS 不会在 XAMPP 上的 Laravel 8 + Jetstream 中加载

尝试在 Laravel 8 中读取 null 上的属性“名称”