在编写器上设置存储库的名称


Setting a name to repository at composer

我在服务器上有我的私有存储库。在我的编辑器文件中,我有以下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"
        }
    }
}