在作曲家为存储库设置名称

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

一切正常,我在 composer.json 文件中得到以下更新:

"repositories": {
  "name": {
    "type": "composer",
    "url": "myrepositoryurl"
  }
}

这两者之间有什么实际区别吗?如果我不想为我的存储库设置名称 url 怎么办?我可以从命令行执行此操作吗?

Is there any actual difference between these two?

没有。 JSON 元素都转换为 PHP 中的数组,因此它们是等效的,一个具有数字键,另一个具有命名键。所以 "repositories.key" 的存在是为了从 CLI 中按键引用 repo。

在存储库中并不真正需要它,因为您可以使用逗号分隔添加多个条目。设置 "name" 仅与包相关(当它们发布时)。

仅当您想从 CLI 添加多个存储库(按密钥名称)时才需要。

这是未记录的,但人们 运行 不时进入这个问题。 引用:https://github.com/composer/composer/issues/2802

And what if I don't want to set a name to my repository url?

手动编辑 composer.json 文件。

Can I do that from the command line?

没有。从 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 类型,而不是 post.

中的类型 composer
{
    "repositories": {
        "name": {
            "type": "vcs",
            "url": "myrepositoryurl"
        }
    }
}