作曲家用我从 GitLab 的包生成一个 .git 目录



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

我在从我的 gitlab 安装软件包或捆绑包的composer.json中进行了配置,我做了那部分,这很复杂,但我做到了。

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

  • 这是一个全新安装
  • 我只有作曲家.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 允许下载 ZIP,而无需在元数据中明确指向它(例如使用 github.com 或 bitbucket.org 作为存储库 URL 的一部分)。

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

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

根据您的情况,使用Satis,本地包装师,Toran代理或"私人包装师"(https://packagist.com/)。

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

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

相关内容

  • 没有找到相关文章

最新更新