直接运行composer config repositories可查看项目级私有源是否配置成功:输出含私有url且结构正确(如{"packagist.org": false}独立置于末尾、url带尾斜杠、type为composer)即生效;否则因位置错误、缺失禁用项或格式不符导致静默失效。

composer config repositories 输出是否含私有源 URL
直接运行 composer config repositories(在项目根目录),看输出里有没有你配的私有仓库地址。如果没出现,说明配置根本没写进 composer.json,或者写错了位置——repositories 必须是顶级字段,不能嵌套在 config、scripts 或其他对象里。
常见错误包括:
- 把
{"type": "composer", "url": "https://pkg.myorg.com/"}写进了config.repositories而非根级repositories - 用了数组格式但漏了
"packagist.org": false这个独立对象,导致 Composer 仍优先查官方源 - URL 少了末尾
/,例如写成https://pkg.myorg.com,结果请求/packages.json时变成https://pkg.myorg.com/packages.json→ 404
composer -vvv require 拉包时是否命中私有域名
执行 composer -vvv require myorg/internal-sdk(用你私有包的真实名),滚动日志里找 Downloading 或 GET 行。真正生效的表现是:出现类似 GET https://pkg.myorg.com/packages.json 或 Downloading https://pkg.myorg.com/dist/myorg-internal-sdk-1.2.3.zip 的请求地址。
如果日志里只有 https://repo.packagist.org 或镜像站地址,说明私有源完全没被访问——大概率是 "packagist.org": false 缺失,或它没放在 repositories 数组末尾。
注意:composer search 不走私有源,它只查 packagist.org 全局索引,不能用来验证私有源是否生效。
auth.json 是否匹配私有源 host
私有源若需认证,auth.json 文件中 http-basic 的 key 必须和仓库 URL 的 host 完全一致(协议、端口、大小写都算)。比如仓库是 https://pkg.myorg.com/,那 auth.json 里必须是 "pkg.myorg.com",写成 "https://pkg.myorg.com" 或 "myorg.com" 都不认。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
auth.json 默认路径是 ~/.composer/auth.json(全局)或项目根目录下的 auth.json(仅限当前项目)。权限必须是 600(Linux/macOS),否则 Composer 会静默忽略该文件。
验证方式:运行 composer -vvv require myorg/internal-sdk 2>&1 | grep "Authentication",能看到 Using HTTP basic authentication for pkg.myorg.com 才算成功触发认证。
为什么 clear-cache 后还是走错源
改完 composer.json 或 auth.json 后,必须执行 composer clear-cache。否则 Composer 会继续用旧缓存里的元数据(比如 p2/ 目录下已解析的 packages.json),行为与新配置不一致。
更彻底的验证方式:
- 删掉
vendor/和composer.lock - 再跑
composer install -vvv - 紧盯第一行
Reading composer.json后的GET请求目标
最容易被忽略的是:私有源必须是 repositories 数组里的第一个元素,且 {"packagist.org": false} 必须作为**最后一个独立对象**存在——顺序和结构缺一不可,错一个就静默 fallback 到官方源。










