必须显式声明"type": "vcs",否则静默失效;URL须含.git后缀且为可克隆地址;repositories必须位于composer.json顶层;包名、域名、auth.json配置须严格一致;需显式禁用packagist.org默认源。

repositories 字段必须显式声明 type: "vcs"
Composer 不会自动把任意 URL 当作 Git 仓库处理,哪怕你写了 https://gitlab.example.com/acme/utils.git。它只在 repositories 数组中明确看到 "type": "vcs" 才会尝试克隆。漏掉这行,整个配置静默失效——既不报错,也不拉代码。
常见错误包括:
- 写成
"type": "git"或"type": "package",实际只认vcs(小写) - URL 是网页地址(如
https://gitlab.example.com/acme/utils),缺.git后缀,导致git clone失败 - 把
repositories嵌套在config或scripts下,必须是composer.json顶层字段
auth.json 路径和权限必须严格匹配
90% 的认证失败不是 token 无效,而是 auth.json 没放对位置或权限不对。Composer 按固定路径查找,且拒绝读取权限过宽的文件。
正确路径与操作:
- Linux/macOS:
~/.composer/auth.json,运行chmod 600 ~/.composer/auth.json - Windows:
%APPDATA%\Composer\auth.json - 内容必须用
http-basic包裹,域名 key 必须和repositories.url的 host 完全一致(例如gitlab.example.com和gitlab.example.com:8080视为不同 key)
require 的包名必须和私有库 composer.json 的 name 字段一字不差
Composer 查包不看 Git 路径,只比对私有库根目录下 composer.json 里的 name 字段。差一个字符、大小写不对、vendor 段缺失,都会报 Could not find package。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
典型配置组合:
- 私有库
composer.json中:"name": "acme/utils" - 主项目
require写:"acme/utils": "dev-main"(不能写Acme/utils或acme-utils) - 分支必须加
dev-前缀,"main"或"*"会被当成模糊约束,转向 Packagist 查找
默认 packagist.org 不会自动禁用,私有包常被跳过
即使你加了私有仓库,Composer 默认仍优先查 packagist.org。如果包名恰好和某个公开包重名(哪怕只是 vendor 名相同),私有源根本不会被触发。
必须显式关闭默认源:
- 在项目级
composer.json顶层加:"packagist.org": false - 该字段必须是顶层键,不能塞进
repositories里 - 若使用 Artifactory/Satis 等私有 Composer 源,URL 末尾斜杠
/不可省略,否则 404
最容易被忽略的是:所有认证配置都依赖 Composer 对请求 host 的精确匹配——域名多一个端口、少一个子域、协议不一致,都会导致凭证不生效,且无提示。

















