最稳的全局镜像配置是直接修改~/.composer/config.json(linux/macos)或%appdata%\composer\config.json(windows),手动添加含"packagist.org": false的repositories数组,url必须为https://mirrors.aliyun.com/composer/且末尾带/,json格式须严格合法。

直接改 ~/.composer/config.json 最稳
全局镜像配置写进 ~/.composer/config.json(Linux/macOS)或 %APPDATA%\Composer\config.json(Windows),比命令行更可控,不会被权限、用户切换或 CI 环境干扰。命令行 composer config -g 本质也是改这个文件,但出错时你没法立刻看到 JSON 结构是否合法。
打开文件后,确保顶层有 "repositories" 字段;如果没有,就手动加一个,格式必须是数组:
{
"repositories": [
{
"packagist.org": false
},
{
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
}
]
}
注意三点:"packagist.org": false 必须在第一位,url 末尾必须带 /,整个 JSON 不能有尾逗号、中文引号或 BOM。
项目级配置别碰 composer.json 的 repositories 字段
很多人想“一劳永逸”地在项目 composer.json 里硬写镜像,结果引发依赖冲突或私有包丢失。只要 repositories 字段存在(哪怕空对象 "repositories": {}),Composer 就会禁用默认源,且不合并全局配置。
如果你真要项目级生效,必须满足:
-
"repositories"是数组,不是对象 - 首位必须是
{"packagist.org": false} - 镜像源作为第二项,
"type": "composer"和完整 URL 缺一不可 - 已有私有 Git 源(如
"my-vcs": {"type": "vcs", "url": "..."})要保留在数组后面,不能被覆盖
错误示例:"repositories": {"packagist.org": false, "type": "composer", "url": "..."} —— 这是对象,不是数组,直接导致 Composer 读取失败。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
换镜像后 composer install 报 hash 不匹配?删 lock 和 vendor
这不是网络问题,是旧 composer.lock 文件里记录的 dist 包哈希和下载路径还指向 packagist.org。阿里云镜像服务内部路径映射不同,校验必然失败。
必须执行两步清理:
- 删掉
vendor/目录 - 删掉
composer.lock
然后运行 composer install(不是 update),让 Composer 重新解析依赖树、生成适配新镜像的 lock 文件。跳过这一步,所有后续操作都会反复报 hash mismatch 或 file could not be downloaded。
验证是否真的生效,别信“执行完就 OK”
最可靠的验证方式只有两个:
- 运行
composer config -g repo.packagist,输出必须是完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。如果返回空、null或报Key does not exist,说明根本没写进去 - 运行
composer diagnose,看Repo.packagist.org那一行是否显示你的镜像地址,而不是https://packagist.org
常见静默失效原因:repo.packagist 拼成 repos.packagist(多一个 s)、URL 少了结尾 /、用 sudo 执行命令但日常开发用的是普通用户、Windows 下路径指向了错误的用户目录。










