我真的不明白Composer是如何使用最小稳定性设置的。
我有两个包裹。比方说PackageA
和PackageB
。
PackageA
的composer.json
文件如下所示:
{
"name": "vendor/packagea",
"minimum-stability": "dev",
"require": {
"vendor/packageb": "dev"
}
}
所以PackageA
需要PackageB
。PackageB
的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创建一个版本。。。
有两个问题:
在create project中,默认情况下,该命令使用稳定的稳定性来查找要安装的包,这就是为什么如果指定dev-master而不是默认情况下它可以工作的原因。但是,您也可以运行composer create-project vendor/packagea -s dev
在安装依赖项之后,我猜您的包在刚刚称为dev
的版本中不存在,所以如果您需要它,它就找不到它。需要开发主机可能会起作用,比如:
{
"name": "vendor/packagea",
"minimum-stability": "dev",
"require": {
"vendor/packageb": "dev-master"
}
}
我是如何解决这个问题的?
安装Composer后,运行以下命令安装Composer资产插件:
php composer.phar global require "fxp/composer-asset-plugin:^1.2.0"
现在选择一个应用程序模板开始安装Yii2.0。应用程序模板是一个包,其中包含用Yii编写的Web应用程序的骨架。