私有包装不上主因是repositories配置不合法:键名错、type值误写为git或拼错、url缺末尾/、未设"packagist.org": false,导致composer静默跳过并回退官方源。

私有包装不上,90% 不是网络或权限问题,而是 repositories 配置本身不合法——Composer 解析失败时不会报具体哪一行错,而是静默跳过,最终 fallback 到 packagist.org 导致“找不到包”。
为什么加了私有仓库 URL 却 still not found
根本不是 URL 写错了,而是 Composer 默认仍查 packagist.org,你的私有源只是 fallback;只要没显式关掉默认源,它就永远不会匹配私有包。
-
"packagist.org": false这行必须写在项目级composer.json的根层级,不能嵌在repositories里,也不能漏掉 - URL 末尾的斜杠
/不可省略,比如"https://artifactory.example.com/artifactory/api/composer/my-virtual-repo/"少一个就会 404 - Artifactory 上的仓库类型必须是
composer(不是 Generic、Remote 或 Virtual 未启用 composer 协议) - Virtual 仓库后端至少要挂一个
type: composer的本地或远程源,否则元数据为空
type 写错导致 “unsupported repository type”
报 “Invalid repository type” 或 “Repository type 'git' is not supported”,99% 是 type 字段拼写错误或用了已废弃类型,不是协议被禁用。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
"type": "git"❌ 应改为"type": "vcs",并配合法 Git URL(如"https://gitlab.example.com/group/pkg.git") -
"type": "package"在 Composer ≥ 2.2 已彻底弃用,必须改用"type": "artifact"或迁移到composer类型源 -
"type": "compsoer"(少个 r)这类拼写错误会让整个repositories数组解析中断,后续条目全失效 - 多个
repositories条目中只要有一个出错,composer install就会直接报协议不支持,不会尝试下一个
auth.json 配置无效,一直 401
报 “Could not authenticate” 或 “401 Unauthorized”,不是 token 错了,而是凭证压根没被 Composer 加载。
- 路径必须是
~/.composer/auth.json(Linux/macOS)或%APPDATA%\Composer\auth.json(Windows),项目级则必须和composer.json同目录 - 权限必须是
600(Linux/macOS):chmod 600 ~/.composer/auth.json,否则 Composer 直接跳过 - 域名必须完全一致:如果仓库 URL 是
https://gitlab.internal:8080/myorg/pkg.git,auth.json里http-basic的 key 就得是"gitlab.internal:8080",端口不能省 - CI 中绝对不要硬编码 token,GitHub Actions 应用
COMPOSER_AUTH环境变量,格式为 JSON 字符串
require dev-main 报 no matching package found
现象是仓库明明有 main 分支,但 composer require vendor/name:dev-main 就失败,问题出在匹配逻辑上。
-
dev-main要求该分支根目录下composer.json的"name"字段必须严格等于 require 中写的包名(如"vendor/name"),大小写、分隔符一个都不能错 - 项目根
composer.json必须显式声明"minimum-stability": "dev",否则默认过滤所有dev-前缀版本 - Git 地址必须带
.git后缀,且能被git ls-remote -h正常列出分支,否则 Composer 根本不识别为有效 vcs 源 - 别依赖全局
composer config -g repositories,项目级composer.json中的repositories会完全屏蔽它
最容易被忽略的是:Composer 不会告诉你哪条 repositories 配置被跳过了,它只在最后报“not found”。真要定位,先跑 composer diagnose,再用 curl -I 或 git ls-remote 逐条验证真实可达性——别信配置看起来对不对,只信命令返回什么。










