Viv*_*ndi 13 github composer-php packagist
我真的不明白Composer如何使用最小稳定性设置.
我有两个包.让我们说吧,PackageA
和PackageB
.
该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)