首页 > 解决方案 > 具有依赖项的 Composer 包给了我错误

问题描述

我不明白为什么会发生此错误,因为每个项目都仅使用 master 发布在 packagist 上:

第二个项目的composer.json

{
    "type": "symfony-bundle",
    "license": "MIT",
    "require": {
        "php": "^7.1.3",
        "vendor/project1": "dev-master"
    }   
}

这是我得到的错误:

 Problem 1
    - Installation request for VENDOR/PROJECT2 dev-master -> satisfiable by VENDOR/PROJECT2[dev-master].
    - VENDOR/PROJECT2 dev-master requires VENDOR/PROJECT1 dev-master -> satisfiable by VENDOR/PROJECT1[dev-master] but these conflict with your requirements or minimum-stability.

我错过了什么?

标签: composer-php

解决方案


这与minimum-stability设置有关。默认情况下,它设置为stable,除非您明确声明需要它,否则将不允许安装不稳定的包。您可以通过 2 种方式解决此问题:

  1. 允许安装不稳定的依赖项。将此添加到您的composer.json

    "minimum-stability": "dev",
    "prefer-stable": true,
    

    prefer-stable确保您将获得稳定的软件包(如果存在) - 如果没有此设置,Composer 将从开发分支安装所有内容,您可能不希望这样。

  2. 明确要求不稳定版本的包:

    "require": {
        ...
        "VENDOR/PROJECT1": "dev-master"
    },
    

composer.json仅当您在主应用程序中执行此操作时,这两种解决方案才有效。


推荐阅读