根据您的最小稳定性设置,该包装不具备足够稳定的版本

Viv*_*ndi 13 github composer-php packagist

我真的不明白Composer如何使用最小稳定性设置.

我有两个包.让我们说吧,PackageAPackageB.

composer.json文件PackageA看起来像这样:

{
    "name": "vendor/packagea",
    "minimum-stability": "dev",
    "require": {
        "vendor/packageb": "dev"
    }
}
Run Code Online (Sandbox Code Playgroud)

所以PackageA需要PackageB.json PackageB看起来像这样:

{
    "name": "vendor/packageb",
    "minimum-stability": "dev"
}
Run Code Online (Sandbox Code Playgroud)

所以两者都说最小稳定性dev.所以我假设我这样做:

composer create-project vendor/packagea
Run Code Online (Sandbox Code Playgroud)

但随后它抱怨了这条消息:

[InvalidArgumentException]
Could not find package vendor/packagea with stability stable.
Run Code Online (Sandbox Code Playgroud)

我发现这很奇怪,因为我认为设置最小稳定性dev会将包从其"开发"分支中拉出来.在github的情况下总是如此dev-master.

所以我试着通过告诉作曲家使用什么分支来安装它:

composer create-project vendor/packagea testFolder dev-master
Run Code Online (Sandbox Code Playgroud)

但后来它抱怨它无法找到PackageB:

Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package vendor/packageb dev could not be found.
Run Code Online (Sandbox Code Playgroud)

那我怎么能安装我的包?我还在开发所以我不想为PackageA和PackageB创建一个版本......

Sel*_*aek 14

有两个问题:

在create-project中,默认情况下,该命令使用稳定稳定性来查找要安装的软件包,这就是为什么如果指定dev-master而不是默认情况下它可以工作的原因.但是你也可以跑composer create-project vendor/packagea -s dev

在安装依赖项之后,我猜测你的软件包在刚刚调用的版本中不存在dev,所以如果你需要它就找不到它.需要dev-master可能会起作用,例如:

{
    "name": "vendor/packagea",
    "minimum-stability": "dev",
    "require": {
        "vendor/packageb": "dev-master"
    }
}
Run Code Online (Sandbox Code Playgroud)