繁体   English   中英

composer 从 GitLab 使用我的包生成一个 .git 目录

[英]composer generates a .git directory with my package from GitLab

我有一个本地 GitLab 正在运行。

我在composer.json中配置,从我的 gitlab 安装一个包或包,我做了那个部分,这很复杂,但我做到了。

我遇到的问题是,当作曲家下载我的模块时,作曲家克隆它而不是下载它,因此创建了一个.git/文件夹,我不希望这样。

  • 这是全新安装
  • 我只有 composer.json 文件
  • 我运行这个命令来安装它: composer install -o --prefer-dist
  • 我已经检查了这篇文章
  • 我测试将存储库类型更改为 vcs|git|package

我的composer.json

{
 "config":{
   "preferred-install": "dist",
   "secure-http": false
    },
   "minimum-stability": "dev",
 "repositories": [ {
   "type": "git",
   "url": "http://gitlab.local/GROUPNAME/REPOSITORY.git"
   }],
 "require": {
   "GROUPNAME/REPOSITORY": "dev-master"
  }
}

我尝试创建一个具有特定版本的标签,并在 composer.json 中添加该版本,但似乎没有什么是平等的

问题是 Composer 不知道如何从本地 Gitlab 实例下载打包的 ZIP 文件。 我什至不确定 Gitlab 是否有这方面的 API(但我没有看过)。

下载 ZIP 取决于以下两种情况之一:

  1. composer.json 元数据指向标记版本的下载位置。
  2. 存储库托管在具有 API 的知名服务上,该 API 允许下载 ZIP,而无需在元数据中明确指向它(例如使用 github.com 或 bitbucket.org 作为存储库 URL 的一部分)。

在所有其他情况下,Composer 只能克隆存储库,因为这是它获得所需代码版本的唯一信息。

还有一种额外的方法可以自己创建下载,与列出可能在根composer.json的“存储库”键中使用的所有私有存储库相比,它要优越得多:

根据您的情况,使用 Satis、本地 Packagist、Toran 代理或“Private Packagist”(在https://packagist.com/上)。

使用 Satis 可能是最简单的方法,因为它对基础架构的要求很少,它基本上为 HTTP 网络服务器创建静态文件。

我要补充一点,在阅读了一些 Composer 代码后,我怀疑通过在(全局)配置中设置gitlab-domains并使用gitlab而不是vcsgit作为存储库类型,您应该能够让 Composer 访问Gitlab API 为了下载 ZIP 而不是克隆 repo(请注意,Composer 在克隆后不会切换 repo,您​​必须删除vendor文件夹,然后再安装/更新一次)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM