composer config repositories 命令向项目 composer.json 的 repositories 数组中添加一条记录,必须为 json 数组格式(非对象),含 type 和 url 字段;type 必须匹配 url 类型(vcs 对应 git 仓库,composer 对应索引服务),且需显式添加 {"packagist.org": false} 禁用默认源并置于数组首位,否则私有包可能被跳过。

composer config repositories 命令到底加的是什么
它往 composer.json 的 repositories 数组里塞一条记录,不是改环境变量、也不是改全局镜像源。执行后你立刻能在项目根目录的 composer.json 里看到新增项,结构必须是数组,不能是对象。
常见错误是手写 JSON 时漏掉 "type": "vcs",或者把整个 repositories 写成一个对象(如 "repositories": {"my-vcs": {...}}),Composer 会直接忽略整段配置,不报错也不提示。
-
composer config repositories.my-git vcs https://git.internal/myorg/sdk.git→ 加进项目级配置,只影响当前项目 -
composer config --global repositories.my-satis composer https://packages.internal/→ 加进全局配置,所有项目都尝试连这个地址 - 别名(如
my-git)纯属标识用,不影响功能,但别用点号或特殊字符,避免解析异常
type 写成 vcs 还是 composer?关键看 URL 是什么
填错 type 是静默失败最常见原因。Composer 不会校验 URL 是否真实可访问,只按 type 决定怎么用它。
如果 URL 指向一个 Git 仓库地址(含 .git 结尾、能被 git clone 成功),type 必须是 vcs;如果 URL 指向一个 Satis 或 Private Packagist 服务首页(返回 packages.json 的 HTTP 接口),type 必须是 composer。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- HTTPS Git 地址:
https://gitlab.example.com/php/utils.git→type: "vcs" - Satis 仓库地址:
https://packages.example.com/→type: "composer" - 写成
"type": "git"或"type": "github"→ 无效,会被跳过 - 用
vcs类型配 Satis 地址,Composer 会试图git clone https://packages.example.com/,然后失败
为什么加了 repositories 还是报 “Could not find package”
根本不是命令没生效,而是 Composer 查包时根本没走到你配的源——它按 repositories 数组顺序匹配,一旦前面某条源声明了同名包(比如 packagist.org 上有同名旧版),就直接用了,后面私有源被跳过。
必须显式关掉默认源,且把它放在 repositories 数组最前面:
- 在项目
composer.json的repositories数组第一项加:{"packagist.org": false} - 别写成
"packagist.org": false单独一项(不在数组里),也不要在别的仓库对象里嵌套写 - 运行
composer config repositories确认输出里确实有packagist.org: false这一项 - 如果用了全局配置,
composer config --list可能显示多个同名源,优先级是:项目级 > 全局 > 默认
认证卡住或 401 错误,别往 url 里硬塞 token
HTTPS 地址里写 https://token:x-oauth-basic@git.example.com/... 已被现代 Git 客户端拒绝,Composer 也会失败。SSH 地址则依赖系统级 SSH 配置,和 composer.json 无关。
- HTTPS 认证统一走
auth.json:运行composer config http-basic.git.example.com user pass - SSH 认证靠
ssh-agent和~/.ssh/config:确保ssh -T git@git.example.com能通,再试composer install -
auth.json文件权限必须是600,否则 Composer 会忽略它 - CI 环境建议用
COMPOSER_AUTH环境变量传认证信息,避免文件权限问题
最容易被忽略的是:私有库自身 composer.json 里的 name 字段,必须和你在主项目 require 里写的字符串完全一致——包括大小写、vendor 名、斜杠方向。少一个字母、大小写错位,都会导致 Composer 根本不扫描那个仓库。










