repositories 字段必须写在 composer.json 根级,与 require、autoload 并列;type 仅支持 vcs、package、composer;需显式禁用 packagist 并注意 name 大小写严格匹配。

repositories 字段写在哪?必须是根级配置
它只能出现在 composer.json 的最外层,和 require、autoload 并列。写在 require 里面、或者嵌套进某个包的配置里,Composer 直接忽略——连警告都不报,只会安静地当它不存在。
- 正确位置:
{"repositories": [...], "require": {...}} - 常见错误:把
repositories塞进require-dev或者某个包的extra字段里 - 验证方法:运行
composer config repositories,有输出才说明被识别了
type 是关键,不是所有 type 都支持私有代码
Composer 内置的 type 只有几种真正可用:vcs(Git/Svn/Hg)、package(手动定义单个包)、composer(指向另一个 Composer 仓库的 packages.json)。别信网上说的 git 或 github——那些不是合法 type,会直接报错 Invalid repository type。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
vcs:适合你有 Git 仓库地址(如https://gitlab.example.com/myorg/mylib.git),Composer 会自动探测分支和 tag -
package:适合你只想引用一个固定版本的 zip 包,或某项目还没建 Git 仓库,但已有发布包 -
composer:适合搭建内部镜像站,比如用 Satis 或 Private Packagist,指向它的packages.json地址 - 注意:
vcs类型下,url必须是可 clone 的地址;HTTP 地址需确保能匿名访问,否则会卡在 auth 提示
packagist.org 被禁用时,必须显式关闭默认源
加了自定义 repositories,Composer 默认仍会查 packagist.org——除非你主动关掉。如果内网环境无法访问外网,composer install 就会卡住或报超时,而不是直奔你的私有源。
- 关闭方式:在
repositories数组最前面加一条{"type": "packagist", "url": false} - 顺序很重要:这条必须是第一个,否则后面加的源可能被跳过
- 副作用:关掉后,所有非私有源的包(比如
monolog/monolog)都得确保已在你的私有源里同步过,否则安装失败 - 临时调试可用
composer install --no-plugins --repository-url=https://your-mirror.com/packages.json,绕过全局配置
private 包的 name 和 version 必须严格匹配 require
你在 repositories 里写的 name(比如 "myorg/mylib"),必须和最终想 require 的完全一致,包括大小写和斜杠方向。Composer 不做模糊匹配,也不自动补前缀。
- 常见坑:
repositories里写"MyOrg/mylib",但require写"myorg/mylib"→ 找不到 - version 字段在
packagetype 中必须显式写全,比如"2.1.0",不能只写"^2.1";Composer 不解析约束,只做字面匹配 - Git 仓库里
composer.json的name和version也得对得上,否则vcs模式下会拉到错误的包信息
packagist 的显式禁用,以及 name 大小写的肉眼误差——这两处出问题,Composer 不报具体错,只默默失败。










