编写器要求安装包失败



我有一个带有作曲家的项目,在主项目 composer.json 文件中需要 vendor/package-1,vendor/package-1 需要 package-1 的 composer.json 中的 vendor/package-2。我目前安装了供应商/软件包-1 的 1.18.11 版和供应商/软件包-2 的 2.3.2 版。我想更新到新的供应商/软件包-1 版本 1.19.*(需要供应商/软件包-2 的版本 2.4.*)并执行:

composer require vendor/package-1:1.19.*

失败,我得到的输出是

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - vendor/package-1 v1.19.2 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2].
    - vendor/package-1 v1.19.1 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2].
    - vendor/package-1 v1.19.2 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2].
    - Can only install one of: vendor/package2[v2.3.2, v2.4.3].
    - Can only install one of: vendor/package2[v2.4.0, v2.3.2].
    - Can only install one of: vendor/package2[v2.4.1, v2.3.2].
    - Can only install one of: vendor/package2[v2.4.2, v2.3.2].
    - Can only install one of: vendor/package2[v2.4.3, v2.3.2].
    - Installation request for vendor/package2 == 2.3.2.0 -> satisfiable by vendor/package2[v2.3.2].
    - Installation request for vendor/package-1 1.19.* -> satisfiable by vendor/package-1[v1.19.1, v1.19.2].
Installation failed, reverting ./composer.json to its original content.

作曲家是否需要为所有依赖项指定命令?如果我尝试

composer require vendor/package-1:1.19.* vendor/package-2:2.4.*

它有效,但没有必要指定每个依赖项,对吧?

似乎在

固定版本中需要供应商/包 2.3.2 或 2.3.*,并且无法更新到 2.4。

通常,您应该尝试放宽版本要求以允许兼容的更新。为此使用波浪号运算符,要求 package2 为 ~2.3(最低 2.3,只要它不是不兼容的版本 3,就更新)。这同样适用于 package1:如果您需要 1.19 行中包含的功能,则需要 ~1.19。

这应该可以通过:

composer require vendor/package-1:1.19.* --update-with-dependencies

相关内容

  • 没有找到相关文章

最新更新