Composer如何配置非Packagist的自定义源

19次阅读

composer可通过repositories字段配置自定义源以安装私有库,支持vcs和composer类型,如私有git仓库或Satis镜像源,需在auth.json中配置认证信息并确保包定义正确,避免密码泄露。

Composer如何配置非Packagist的自定义源

Composer 默认从 Packagist 下载包,但你可以配置自定义源来安装私有库或使用镜像。这在团队内部开发、部署私有组件时非常实用。

添加自定义仓库

在项目的 composer.json 中通过 repositories 字段添加非 Packagist 的源。支持多种类型,常见的是 composer(基于 Composer 镜像)和 vcs(版本控制系统,如 Git)。

示例:使用 VCS 添加私有 Git 仓库

当你有一个私有 Git 项目,可以这样配置:

{     "repositories": [         {             "type": "vcs",             "url": "https://git.example.com/my-private-package.git"         }     ],     "require": {         "my-vendor/my-private-package": "^1.0"     } }

Composer 会从指定的 Git 地址拉取代码,并按版本要求安装。

示例:使用自定义 Composer 镜像源

如果你搭建了 Satis 或 Toran proxy 这类私有包服务器,使用 composer 类型:

{     "repositories": [         {             "type": "composer",             "url": "https://packages.example.com"         }     ],     "require": {         "my-company/secret-lib": "^2.1"     } }

Composer 会从此镜像源查询并下载包,适合集中管理多个私有包。

认证私有仓库

如果源需要身份验证(如私有 Git 或 HTTPS 包服务器),可通过以下方式配置凭证:

  • 在命令行运行 composer config 添加认证信息
  • 编辑全局配置文件 auth.json(推荐,避免泄露密码)

示例:auth.json 配置 HTTP 基本身份验证

{     "http-basic": {         "packages.example.com": {             "username": "your-username",             "password": "your-Token-or-password"         }     } }

将此文件放在项目根目录或 Composer 全局配置目录(通常是 ~/.config/composer/auth.json)。

注意事项

自定义源虽然灵活,但需注意:

  • 确保仓库中包的 nameversion 定义正确
  • VCS 仓库必须包含有效的 composer.json
  • 优先使用 HTTPS + token,避免明文密码
  • 公共项目中不要提交 auth.json

基本上就这些。配置好后,直接运行 composer install 即可从自定义源拉取依赖。不复杂但容易忽略细节。

text=ZqhQzanResources