项目级repositories配置必须写入composer.json,支持composer/vcs类型源,url须https且结尾带/,需删composer.lock后执行install才能生效。

repositories 配置必须写在项目级 composer.json 里
全局配置 repo.packagist 只能替换 Packagist 官方源,不能添加额外私有源;真正要加自定义镜像或私有仓库,必须在项目根目录的 composer.json 中写 repositories 数组。它不是“开关”,而是 Composer 查询包元数据时按顺序扫描的源头列表。
- 顺序决定优先级:靠前的仓库先匹配,哪怕后面有更合适的版本也不会回退
- 类型必须明确:常见的是
"type": "composer"(对应私有 Packagist 兼容源)和"type": "vcs"(对应 Git 仓库) - 不校验可用性:配置了但服务不可达,只会报
Could not fetch packages,不会自动跳过
type: "composer" 源 URL 必须以 / 结尾且支持 HTTPS
这是接入 Satis、Private Packagist 或 Artifactory 等私有源最常踩坑的地方。Composer 会拼接 /packages.json,如果 URL 不以 / 结尾,就会请求错路径,比如 https://x.y.z/packages.json 变成 https://x.y.zpackages.json(少了个斜杠)。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 正确写法:
"url": "https://my-repo.example.com/"(结尾有斜杠) - HTTP 协议基本不可用:除非显式开启
config.allow-plugins.composer/installers,否则会被拒绝 - 认证凭证不能硬编码在
repositories里,得提前运行composer config http-basic.my-repo.example.com user token,让凭证存进auth.json
type: "vcs" 要求包名与目标仓库 composer.json 完全一致
当你想直接从 GitHub 分支安装一个还没发版的包,type: "vcs" 是唯一办法,但它不会根据 URL 推断包名——它只认你声明的 name 字段。
- 仓库 URL 必须是可克隆地址,如
https://github.com/acme/my-lib.git或git@github.com:acme/my-lib.git - 目标分支的
composer.json中"name"必须等于你在require里写的包名,比如"acme/my-lib" - 如果该分支没打 tag,version 字段是
"dev-main",那你就得用"acme/my-lib": "dev-main"来 require,不能写"^1.0"
改完 repositories 后必须删 lock 文件再 install
Composer 不会在 composer install 时重新解析所有源,它依赖 composer.lock 记录的精确包来源和哈希。如果你新增或调整了 repositories,但没删 lock 文件,Composer 就仍按旧记录拉包,可能从 Packagist 下载而非你的私有源。
- 执行
rm composer.lock(或del composer.lockon Windows) - 再跑
composer install,它会重新走一遍包发现流程,命中新配置的源 - 如果已有 vendor 目录,建议一并删除,避免 autoload 和 bin 链接残留旧路径逻辑
composer.lock 是否被重建、auth.json 是否就位、以及 URL 的末尾斜杠和协议是否合规——这三个点漏一个,就可能静默走回官方源或直接失败。










