composer 私有化备忘录

我们知道,正常情况下,我们使用 composer install 时,是从 https://packagist.org/ 拉取的 package.
如果设置了 中国镜像,那么就会从你的镜像地址拉取。

处于一些需要,我们往往需要引用自己开发的 composer package。如果是公用还好,我们直接结合 githubpackagist 发布共有的镜像就好了。

那如果我们使用的是自建的 git 服务(如: gitlab 或者 gogs)开发的 composer package,并且是私有,咋办?

本文描述的是 不搭建私有 composer服务器 的方式来使用私有包。

全局包

比如我们开发了全局的脚手架

1
2
3
4
5
6
7
8
# 允许 http 源
composer config --global secure-http false

# 添加本项目的源
composer config --global repositories.package vcs http://gitlab.yourhost.com/package.git

# 全局安装
composer global require vendor/package -vvv

非全局包

修改调用方的 composer.json 即可,关键字段设置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"repositories": [
{
"type": "vcs",
"url": "http://gitlab.yourhost.com/package.git"
}
],
"require": {
"vendor/name": "dev-master"
},
"config": {
"secure-http": false
}
}

然后执行下述指令即可安装

1
composer install -vvv

说明:

  • secure-http 允许使用 http 协议的源
  • vendor/name 对应的是自己开发的 composer 包中的 composer.json 中定义的 name 字段
  • dev-master 表示和 master 分支保持一致。正常情况下,我们应该打 tag(或者又叫 release)