composer镜像源只控制元数据和包的获取地址,不决定vendor目录位置;vendor路径由config.vendor-dir配置,可全局或项目级设置相对/绝对路径,修改后需删除旧vendor和composer.lock再install。

Composer镜像源不控制下载目录,只控制元数据和包的获取地址
Composer 镜像源配置(如 repo.packagist)**不决定 vendor 目录位置**,它只改“从哪拉包信息、从哪下 ZIP/tar 包”,vendor 路径由 config.vendor-dir 控制。很多人误以为换镜像就能改下载位置,实际是两个完全独立的配置维度。
想改 vendor 目录?用 config.vendor-dir,不是镜像配置
要让 composer install 把依赖装到非默认路径(比如 libs/ 或 ../shared/vendor),必须设置 vendor-dir,而非动 repo.packagist:
- 全局改(影响所有项目):
composer config -g vendor-dir libs - 项目级改(只影响当前项目):
composer config vendor-dir libs,会写入composer.json的config字段 - 值可以是相对路径(如
libs)或绝对路径(如/opt/myproject/vendor),但**不能以~开头**(Shell 不展开,Composer 也不解析) - 改完后需删掉旧
vendor/和composer.lock,再composer install才生效
镜像源 + 自定义 vendor-dir 可以共存,但要注意顺序
这两者可同时配置,但有隐含依赖关系:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 先确保镜像已生效(
composer config -g repo.packagist输出正确 JSON),否则install可能卡在元数据请求,根本走不到解压到 vendor 这步 -
vendor-dir修改后,Composer 会自动在新路径下创建autoload.php和composer/autoload_classmap.php等文件,但autoload配置(如 PSR-4 映射)仍需手动检查是否指向正确源码路径 - 如果用了
config.platform模拟环境,某些包的安装逻辑可能因 vendor 路径变化而失败(尤其是硬编码vendor/autoload.php的测试脚本)
同步目标目录 ≠ 镜像同步,别混淆概念
“同步目标目录”这个说法容易引发误解——Composer 本身**不提供镜像源内容的本地同步功能**(即不像 rsync 那样把整个 packagist 库拉到内网)。你配置的镜像只是 HTTP 代理,每次 install 仍是按需向镜像服务器发起请求。真要离线或统一分发,得用:
-
composer archive打包单个项目依赖 - 私有 Packagist 实例(如 Satis、Private Packagist)
- CI 中缓存
~/.composer/cache目录(加速重复构建,但不是“同步镜像”)
镜像配置里没有 sync-to、mirror-dir 或类似字段,所有试图在 config.json 里加这类键名的操作都会被忽略。










