验证镜像是否生效的唯一方式是执行composer install -vvv,观察日志中downloading或get请求的url:若为https://mirrors.aliyun.com/composer/则走镜像,若为https://repo.packagist.org/则未生效;项目级配置需显式禁用packagist.org,且install优于update以跳过依赖解析。

镜像源本身不支持“浅克隆”,Composer 没有类似 Git 的 --depth 机制;所谓“加速大型单体库安装”,本质是靠镜像降低下载延迟 + 正确跳过冗余解析,不是减少包内容。
composer install -vvv 才是验证镜像是否真在用的唯一方式
别信 composer config -g repo.packagist 输出非空就以为生效了。很多用户配完看到 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 就收工,结果 composer install 还是从 https://repo.packagist.org 下载——因为项目 composer.json 里写了 "packagist.org": false 或 repositories 是数组结构,覆盖了全局配置。
- 必须加
-vvv:执行composer install -vvv或composer update -vvv - 在输出里搜
GET或Downloading,确认 URL 是https://mirrors.aliyun.com/composer/packagist.json而非repo.packagist.org - 如果看到
packages.json请求发向官方域名,说明镜像没参与解析阶段,后续所有包下载都慢
项目级配置 repositories 时,packagist.org 必须显式禁用
大型单体库往往依赖数百个包,其中不少是 dev-only 工具(如 phpunit/phpunit、larastan/larastan),它们的元数据拉取最耗时。镜像要起效,必须让 Composer 完全绕过官方源。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 错误写法:
"repositories": [{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}]→ 官方源仍兜底,部分包会 fallback - 正确写法(对象形式):
"repositories": {"packagist": false, "aliyun": {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}} - 正确写法(数组形式,推荐):
"repositories": [{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}, {"packagist.org": false}] - 注意:
packagist.org必须是数组中最后一项,否则前面的镜像可能被跳过
删 vendor 和 lock 文件后,必须用 install 而非 update
大型单体库的 composer.lock 通常含上千行,记录着每个包的 exact commit、dist hash 和 platform 约束。想“浅”还原环境,不是少装几个包,而是严格复现原 lock 内容。
- 执行前确认三件事:
composer.lock存在且未被.gitignore忽略、vendor/目录为空、PHP 版本 ≥ lock 中"platform": {"php": ">=8.1.0"}声明 - 用
composer install:它只读 lock,跳过依赖图重算,10 秒内完成下载(镜像前提下) - 禁用
composer update:它会触发完整解析,对大型项目常卡在Resolving dependencies2 分钟以上,和镜像无关 - 若 lock 缺失,先在原环境跑
composer update --lock生成,再提交
临时切镜像调试时,--repository 参数名不能错
CI 流水线或本地排查时,不想改任何配置文件,直接试镜像是否可用?--repository 是唯一安全参数,但拼错就静默失效。
- 正确:
composer install --repository=https://mirrors.huaweicloud.com/repository/php/composer/ -vvv - 错误:
--repository-url、--mirror、--source→ Composer 不识别,仍走默认源 - 该参数会完全忽略
composer.json和全局config.json中所有repositories配置,强制走指定地址 - 华为云路径含
/repository/php/,少这一段会 404;阿里云和腾讯云末尾不能带/(和全局配置要求相反)
真正卡住大型单体库的,从来不是镜像没配好,而是 composer update 被误用、repositories 结构没压住官方源、或 lock 文件被忽略提交——这三处一错,镜像再快也白搭。










