当“密钥存储库在 ./composer.json 中重复”时,composer 使用哪一个?

我注意到我的 composer.json 中有重复的“存储库”键,用于我正在开发的一个包。

该软件包正在运行。因此,我想执行“重构”,因为我想在不改变行为的情况下修复代码。

如果我想修复错误,我将不得不删除未使用的重复密钥。

所以,问题是:

当“密钥存储库在 ./composer.json 中重复”时,composer 使用哪一个?

换句话说,

  • 是否composer使用它找到的第一个键并忽略未来的键?

  • 它是否忽略以前的键并使用它找到的最后一个键?或者

  • 它是否以某种巧妙的方式合并了键的子项?

这是我正在运行的命令:

$ composer validate

Key repositories is a duplicate in ./composer.json at line 16

...

composer.json 看起来像这样:


{

  "name": "foo/bar",

  "description": "foo bar",

  "license": "Apache-2.0",

  "type": "library",

  "repositories": [

    {"type": "composer", "url": "foo"},

    {"packagist.org": false}

  ],


  "repositories": [

    {

      "type": "vcs",

      "url": "bar"

    }

  ],


  ...

 }


慕斯王
浏览 83回答 1
1回答

弑天下

Composer 使用seld/jsonlint检测重复键,但它用于 json_decode解码 JSON。json_decode使用它找到的最后一个键值:>>> $json = '{"a":1,"a":10,"a":100}';=> "{"a":1,"a":10,"a":100}">>> $decoded = json_decode($json)=> {#3260     +"a": 100,   }>>> $decoded->a=> 100
打开App,查看更多内容
随时随地看视频慕课网APP