composer show --tree卡顿根本原因是元数据加载失败:镜像未生效(键名repo.packagist、type值、URL末尾斜杠三者缺一即静默回退官方源)、缓存污染或composer.lock残留旧dist地址,导致其卡在Loading composer repositories;必须clear-cache、删lock文件并用-vvv验证日志是否命中镜像域名。

Composer 导出(composer install --dry-run 或 composer show --tree 等非安装类操作)本身不下载包,但卡顿往往是因为它仍要完整拉取并解析元数据——镜像没生效、缓存污染、或锁文件残留旧源地址,都会让“导出”变成“偷偷联网等超时”。
为什么 composer show --tree 会卡住
这个命令看似只查本地依赖树,实际会先触发元数据加载:Composer 必须确认所有包的最新可用版本、约束兼容性、甚至校验 composer.lock 中记录的 dist URL 是否仍有效。一旦镜像未生效或缓存里存着 packagist.org 的旧 packages.json,它就会卡在 Loading composer repositories。
- 常见错误现象:
composer show --tree卡 20 秒以上,-vvv日志里出现GET https://packagist.org/packages.json - 根本原因不是命令本身慢,而是它被迫走默认源——哪怕你只想看个结构
- 验证方式:执行
composer config -g repo.packagist,输出必须是完整 JSON,如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};空、null或https://packagist.org都说明没生效 - 别跳过
composer clear-cache:旧缓存会让 Composer 绕过镜像直接读本地损坏/过期的元数据
composer install --dry-run 加速的关键点
--dry-run 模拟安装流程,会完整走依赖解析、版本匹配、dist URL 校验,但不真正下载解压。它的速度瓶颈和真实安装一致:元数据加载 + 锁文件中 dist 地址是否可访问。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 必须删掉
composer.lock再跑--dry-run:否则它沿用锁文件里记录的原始 GitHub dist URL(如https://api.github.com/...),即使镜像已配好也无效 - 项目级配置比全局更可靠:在项目根目录执行
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加-g),它会写入composer.json的repositories字段,CI/宝塔等环境也能读到 - 并发数影响解析阶段耗时:Composer 2.2+ 支持
composer config -g parallel-downloads 10,能加速元数据并行请求,对--dry-run的“Resolving dependencies”阶段有明显改善 - 如果
composer.json里已有"repositories"字段,确保它是数组格式([]),否则composer config命令可能报错或覆盖原有私有源
导出依赖列表时避免 GitHub 直连
想用 composer show --format=json 或 composer depends 查依赖关系却卡在 Downloading https://codeload.github.com/?这不是导出命令的问题,而是锁文件或 vendor 中残留了原始 dist 地址。
- 临时绕过:加
--no-plugins参数,禁用可能干扰网络路径的插件(如旧版fxp/composer-asset-plugin) - 强制刷新 dist URL:删
vendor/和composer.lock,再跑composer install --dry-run,此时生成的新 lock 文件会包含镜像域名的 dist URL - 验证是否真走镜像:加
-vvv并 grep,应看到类似Downloading https://mirrors.aliyun.com/composer/p2/symfony/console.json,而非github.com或packagist.org - 注意
prefer-dist true:全局设composer config -g prefer-dist true可避免 fallback 到 git clone,减少 DNS 和 SSH 开销
最易被忽略的是:导出类操作不写 vendor,但极度依赖 lock 文件和缓存的“新鲜度”。一次 clear-cache + 一次 clean lock + 一次带 -vvv 的验证,比反复重试快得多。

















