为什么作曲家中的存储库本地指令不起作用?
Why is repository local directive in composer not working?
有一个项目“OctoberCMS”有一个名为“rain”的库,即。一种依赖。我使用以下方法将它们克隆到我的桌面:
git clone --branch develop git@github.com:octobercms/october.git
git clone --branch develop git@github.com: octobercms/library.git
(实际上是克隆的分叉版本,但无论如何显示上面的原始 repo URL)
所以问题是我想对图书馆项目进行更改和 PR。所以我打开 october 文件夹中的 composer.json 然后添加:
"repositories": [
{
"type": "path",
"url": "../library",
"options": {
"symlink": true
}
}
],
并且由于主要的 OctoberCMS 项目已经有 october/rain
即库项目作为在其作曲家中声明的依赖项,我将代码从 "october/rain": "1.1.*",
更改为 "october/rain": "@dev",
,希望它将符号链接并加载本地仓库。但是没用。
我认为 OctoberCMS 的其他依赖项,即 system, backend and cms 也需要 `"october/rain": "1.1.*" ,也许这就是 composer 在我的本地克隆上加载 packagist 版本的原因。因此,我尝试使用 replace 指令,因为我读到它有助于告诉依赖项在满足时忽略块中的任何内容,
"replace" : {
"october/rain": "~1.1.0"
},
希望 composer 会认为主项目的 composer 指令可以满足 @dev 但这也不起作用。当我最终删除 3 个要求时,即:
"october/system": "1.1.*",
"october/backend": "1.1.*",
"october/cms": "1.1.*",
然后符号链接起作用,并且确实引用了我的本地存储库,但是项目失败了,因为它的依赖项不存在。所以我很困惑我能做些什么来解决这个问题。
告诉作曲家使用 develop
分支,但创建一个 inline alias 到满足其他依赖项的版本:
{
"require": {
...
"october/rain": "dev-develop as 1.1.x-dev",
...
}
}
为了进一步开发,我建议您更新 october/rain
存储库中的 branch alias:
{
"extra": {
"branch-alias": {
"dev-development": "1.1.x-dev"
}
}
}
这需要随着每个发布/开发阶段而改变。
有一个项目“OctoberCMS”有一个名为“rain”的库,即。一种依赖。我使用以下方法将它们克隆到我的桌面:
git clone --branch develop git@github.com:octobercms/october.git
git clone --branch develop git@github.com: octobercms/library.git
(实际上是克隆的分叉版本,但无论如何显示上面的原始 repo URL) 所以问题是我想对图书馆项目进行更改和 PR。所以我打开 october 文件夹中的 composer.json 然后添加:
"repositories": [
{
"type": "path",
"url": "../library",
"options": {
"symlink": true
}
}
],
并且由于主要的 OctoberCMS 项目已经有 october/rain
即库项目作为在其作曲家中声明的依赖项,我将代码从 "october/rain": "1.1.*",
更改为 "october/rain": "@dev",
,希望它将符号链接并加载本地仓库。但是没用。
我认为 OctoberCMS 的其他依赖项,即 system, backend and cms 也需要 `"october/rain": "1.1.*" ,也许这就是 composer 在我的本地克隆上加载 packagist 版本的原因。因此,我尝试使用 replace 指令,因为我读到它有助于告诉依赖项在满足时忽略块中的任何内容,
"replace" : {
"october/rain": "~1.1.0"
},
希望 composer 会认为主项目的 composer 指令可以满足 @dev 但这也不起作用。当我最终删除 3 个要求时,即:
"october/system": "1.1.*",
"october/backend": "1.1.*",
"october/cms": "1.1.*",
然后符号链接起作用,并且确实引用了我的本地存储库,但是项目失败了,因为它的依赖项不存在。所以我很困惑我能做些什么来解决这个问题。
告诉作曲家使用 develop
分支,但创建一个 inline alias 到满足其他依赖项的版本:
{
"require": {
...
"october/rain": "dev-develop as 1.1.x-dev",
...
}
}
为了进一步开发,我建议您更新 october/rain
存储库中的 branch alias:
{
"extra": {
"branch-alias": {
"dev-development": "1.1.x-dev"
}
}
}
这需要随着每个发布/开发阶段而改变。