我有一个本地的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 取决于以下两种情况之一:
- composer.json 元数据指向标记版本的下载位置。
- 存储库托管在一个众所周知的服务中,其 API 允许下载 ZIP,而无需在元数据中明确指向它(例如使用 github.com 或 bitbucket.org 作为存储库 URL 的一部分)。
在所有其他情况下,Composer 只能克隆存储库,因为这是它获得所需代码版本的唯一信息。
还有一种额外的方法可以自己创建下载,与列出可能在根composer.json
的"存储库"键中使用的所有私有存储库相比,它要优越得多:
根据您的情况,使用Satis,本地包装师,Toran代理或"私人包装师"(https://packagist.com/)。
使用Satis可能是最简单的方法,因为它对基础设施的要求很少,它基本上为HTTP网络服务器创建静态文件。
我想补充一点,在阅读了一些 Composer 代码后,我怀疑通过在(全局)配置中设置gitlab-domains
并使用gitlab
而不是vcs
或git
作为存储库类型,您应该能够让 Composer 访问 Gitlab API 以便下载 ZIP 而不是克隆存储库(请注意,Composer 一旦克隆就不会切换存储库, 您必须删除vendor
文件夹,然后再次安装/更新一次)。