我在服务器上有我的私有存储库。在我的编辑器文件中,我有以下JSON:
"repositories": [
{
"type": "composer",
"url": "myrepositoryurl"
}
]
这一切都很好。如果我运行以下命令:
composer config repositories vcs myrepositoryurl
我收到一个错误,从作曲家说:
[InvalidArgumentException]
Setting repositories does not exist or is not supported by this command
如果我将命令改为
composer config repositories.name vcs myrepositoryurl
一切都很好,我在作曲家内部得到了以下更新。json文件:
"repositories": {
"name": {
"type": "composer",
"url": "myrepositoryurl"
}
}
这两者之间有什么实际的区别吗?如果我不想为存储库url设置名称呢?我能从命令行做到这一点吗?
这两者之间有什么实际的区别吗?
。两个JSON元素在PHP中都转换为数组,因此它们是等价的,一个具有数字键,另一个具有命名键。所以"存储库。key"的存在是为了从CLI中按键引用repo。
在存储库中并不需要,因为您可以使用逗号分隔添加多个条目。设置"name"只与包相关(当它们被发布时)。
只有当您想从CLI添加多个存储库(通过密钥名)时才需要。
这是没有文档记录的,但是人们经常会遇到这个问题。引用:https://github.com/composer/composer/issues/2802
如果我不想为我的存储库url设置名称该怎么办?
手动编辑composer.json
文件
我可以从命令行做吗?
。在CLI中,它是
-
config key value
或 -
config key value1 ... valueN
(数组值) - 然后是
config repositories.key value
。
不支持语法composer config repositories vcs myrepositoryurl
,参见https://getcomposer.org/doc/03-cli.md#modifying-repositories
注意命令:composer config repositories.name vcs myrepositoryurl
的类型是vcs
,而不是composer
。
{
"repositories": {
"name": {
"type": "vcs",
"url": "myrepositoryurl"
}
}
}