私有依赖无法通过阿里云等中文镜像加速,因镜像仅缓存 packagist.org 公开包,对 internal/auth-sdk 等私有包无感知;强行配置会导致 composer require 卡住或报“could not find package”。

私有依赖不能走阿里云、腾讯云等中文镜像加速——镜像只缓存 packagist.org 公开包,对 internal/auth-sdk 这类私有包完全无感知。强行配镜像只会让 composer require 卡在克隆或直接报 Could not find package。
为什么私有 Git 仓库必须用 vcs 类型声明
Composer 默认只查 packagist.org,不会自动扫描本地或内网 Git 地址。不显式声明 "type": "vcs",它连仓库 URL 都不会尝试访问。
-
"type": "composer"是给 Satis 或 Private Packagist 这类元数据服务用的,不是给裸 Git 仓库的;误配会导致 Composer 去镜像站找私有包,必然 404 - Git 仓库 URL 必须能被
git clone直接执行,比如git@gitlab.com:org/pkg.git或https://token@github.com/org/pkg.git - 包名(如
org/pkg)必须和仓库里composer.json的"name"字段完全一致,大小写、斜杠都不能错
认证别硬编码进 composer.json,用 auth.json 管理凭据
把 token 或密码写进 composer.json 是高危操作,一提交就泄露。正确路径是让 Composer 自动读取 auth.json。
辅助阅读和快速理解 GitHub/Git 项目结构与核心价值的结构化方法论。 当用户请求"分析这个 GitHub 项目"、"帮我读一下这个 repo"、"了解这个项目是做什么的"、 "怎么用这个项目"、"怎么跑这个项目"、"这个项目用了哪些技术",或任何涉及 GitHub/Git 仓库阅读、理解、技术评估、快速上...
- 运行
composer config http-basic.repo.example.com username password(HTTPS 场景),或composer config --global github-oauth.github.com YOUR_TOKEN(GitHub) - 生成的
auth.json默认在~/.composer/auth.json(全局)或项目根目录下(项目级),务必加进.gitignore - 如果私有源是
https://repo.example.com,但你用 IP 访问(如https://192.168.1.100),http-basic映射会失效——域名必须严格匹配
公共镜像和私有源共存时,顺序和开关要小心
混用时最常踩的坑是:本想加速公共包,结果私有包解析失败,或者公共包被私有源“污染”掉。
- 不要写
"packagist.org": false—— 它只禁用默认源,但不会阻止 Composer 尝试其他"type": "composer"源;真要隔离,用顶层"packagist": false(注意没.org) - 私有源放
repositories数组前面,公共镜像放后面;否则 Composer 可能先去私有源找monolog/monolog,而该源没发布这个包,导致超时或 fallback 失败 - 阿里云镜像 URL 必须带结尾斜杠:
https://mirrors.aliyun.com/composer/,少一个/就静默回退到官方源
真正影响私有依赖速度的,从来不是 CDN,而是认证是否提前注入、SSH agent 是否就绪、Git 是否能免密 clone。镜像只对公开包有效,别指望它解决私有源的权限或元数据问题。










