【问题标题】:How to invoke composer create-project on a private repo?如何在私有仓库上调用 composer create-project?
【发布时间】:2020-02-24 12:25:23
【问题描述】:

如何在私有存储库上调用composer create-project

当运行composer create-project vendor/package new-project --repository https://github.com/vendor/package.git composer 抛出异常

[作曲家\下载器\TransportException] 无法下载“https://github.com/vendor/package.git/packages.json”文件(HTTP/1.1 404 Not Found)

在全局composer.json 中定义存储库并运行composer create-project vendor/package new-project 时,composer 抛出

[无效参数异常] 找不到稳定性稳定的包供应商/包。

私有存储库有一个composer.json,其中包含使用的供应商和包名称。


更新:

文档说明--repository可以接受

一个类似于repositories 键接受的 JSON 字符串

所以我尝试指定存储库的类型为 vcs。

以下尝试都导致 ParsingException。

composer create-project vendor/package new-project --repository '{"type": "vcs", "url": "https://github.com/vendor/package"}'
composer create-project vendor/package new-project --repository '{"repositories": [{"type": "vcs","url": "https://github.com/vendor/package"}]}'
  [Seld\JsonLint\ParsingException]
  "" does not contain valid JSON
  Parse error on line 1:
  {type: vcs, url: http
  ^
  Expected one of: 'STRING', '}'

【问题讨论】:

  • 您正在混淆 create-project 命令的 --repository 参数和 composer.json 模式中的 repositories 部分。这些不一样。
  • 文档说“可以是指向作曲家存储库的 HTTP URL、本地 packages.json 文件的路径或类似于存储库键接受的 JSON 字符串。”后者表明了这一点。

标签: php composer-php


【解决方案1】:

从 Parse 错误看来,您的双引号没有正确转义。尝试像这样运行命令。

composer create-project vendor/package new-project --repository "{\"type\": \"vcs\", \"url\": \"https://github.com/vendor/package\"}" --stability=dev

【讨论】:

  • 好主意,但导致相同的 ParsingException。
  • 您使用的是什么操作系统?逃避双引号的方法可能因操作系统而异。这种方式在 Win 10 上对我有用。
  • 好吧,这很奇怪。 Win10上也一样。如果我复制/粘贴它,它会导致所说的 ParsingException。如果我将命令放在批处理文件中并执行它,它就可以工作(?!)。感谢您的帮助!
【解决方案2】:

当提供指向--repository 选项的URL 时,Composer 假定它是一个composer 类型的存储库(基本上是Packagist 或Satis 安装)。这就是它搜索packages.json 文件的原因。

第二条错误消息指向您的存储库没有任何标签(或者更确切地说,稳定版本),默认情况下,create-project 使用stable 稳定性。要安装 repo 的开发版本,请尝试:

composer create-project --stability=dev elstr/core-skeleton

【讨论】:

  • 感谢您的解释。我更新了我的问题,试图将 --repository 选项指定为 vcs 类型。使用--stability=dev 的建议也没有解决问题(包标记为 1.0.0,据我了解,它应该是稳定的)。
猜你喜欢
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 2022-08-20
  • 1970-01-01
相关资源
最近更新 更多