根据你的最小稳定性设置,该软件包没有可用的稳定版本。

14

我其实不太理解Composer如何与minimum-stability设置配合工作。

我有两个包。假设它们是PackageAPackageB

PackageAcomposer.json文件如下:

{
    "name": "vendor/packagea",
    "minimum-stability": "dev",
    "require": {
        "vendor/packageb": "dev"
    }
}

所以PackageA需要PackageBPackageB的JSON如下所示:

{
    "name": "vendor/packageb",
    "minimum-stability": "dev"
}

所以两者都说最低稳定性是dev。所以我认为当我执行:

composer create-project vendor/packagea

但是它会抱怨并显示以下消息:

[InvalidArgumentException]
Could not find package vendor/packagea with stability stable.

我觉得这很奇怪,因为我会认为将最小稳定性设置为dev会从 "开发" 分支中拉取软件包。在github的情况下,这总是dev-master

所以我试着告诉composer使用哪个分支来安装它:

composer create-project vendor/packagea testFolder dev-master

但是它抱怨找不到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.

那么我该如何安装我的软件包?我还在开发中,所以不想为PackageA和PackageB创建发布版本...

2个回答

14

有两个问题:

在 create-project 中,默认情况下该命令使用 stable 稳定版本来查找要安装的软件包,这就是为什么如果你不指定 dev-master,它就能正常工作。不过,你也可以运行 composer create-project vendor/packagea -s dev

在安装依赖项时,我猜测你的软件包不是以dev这个版本名称存在的,因此如果你像那样要求它,它就找不到。如果你要求 dev-master,则可能会起作用,例如:

{
    "name": "vendor/packagea",
    "minimum-stability": "dev",
    "require": {
        "vendor/packageb": "dev-master"
    }
}

require 更改为 dev-master 确实有效。还必须使用 dev-master 选项安装它。但是这仍然对我来说似乎很奇怪。看起来 dev 完全没有用,因为它对我真的没有任何作用。 - Vivendi
要求使用*@dev作为版本约束是有效的,因为它允许使用开发版本。但是,仅使用dev会尝试查找与该名称完全匹配的版本,而这样的版本并不存在。 - Seldaek
无法与composer 1.0-dev 2015-07-21一起使用:Invalid stability provided (=dev) must be one of: stable, RC, beta, alpha, dev 必须是-sdev: composer create-project vendor/packagea -sdev - dave

0

我是如何解决这个问题的?

安装Composer后,运行以下命令安装Composer Asset插件:

php composer.phar global require "fxp/composer-asset-plugin:^1.2.0"

现在选择一个应用程序模板来开始安装 Yii 2.0。应用程序模板是一个包,其中包含 Yii 编写的 Web 应用程序的骨架。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接