composer清理缓存后仍读旧packages.json,因clear-cache不删repo下镜像子目录;需手动删除~/.composer/cache/repo/https---mirrors-aliyun-com-composer(linux/macos)或%appdata%\composer\cache\repo\https---mirrors-aliyun-com-composer(windows),再用composer show -vvv验证是否出现downloading而非reading from cache。

Composer清理缓存后仍读旧packages.json?删对目录才生效
执行composer clear-cache不会强制刷新远程包列表,它只清~/.composer/cache/files/和部分元数据,但packages.json这类 provider 缓存默认保留15分钟,且不随clear-cache一并清除。你看到“Could not find package”或composer show没结果,大概率是这个缓存没动。
真正要删的是镜像源对应的 repo 子路径:
- Linux/macOS:
rm -rf ~/.composer/cache/repo/https---mirrors-aliyun-com-composer - Windows:
rd /s /q "%APPDATA%\Composer\Cache\Repo\https---mirrors-aliyun-com-composer"
注意 URL 中的-是.和/被转义后的结果,不是手误;删完不用重启终端,直接运行composer show vendor/package-name即可触发重新下载packages.json。
如何确认包列表真的重拉了?看日志关键词
别凭感觉判断是否刷新成功。加-vvv参数跑一次探测命令,观察输出里是否出现Downloading https://...:
- 运行
composer show monolog/monolog -vvv - 如果日志中出现
Reading from cache,说明还在用旧缓存,删得不对或路径有误 - 如果出现
Downloading https://mirrors.aliyun.com/composer/p2/monolog/monolog.json(或类似),才代表真正在走网络
注意:即使切回官方源composer config --global repo.packagist composer https://packagist.org,也必须同步清理对应 repo 目录(如https---repo-packagist-org),否则照样读本地缓存。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
镜像配置写对了但没生效?三处细节常被忽略
很多用户反复执行composer config却始终走错源,问题不在缓存,而在配置本身未被 Composer 识别:
- 键名必须是
repo.packagist,多一个s(如repos.packagist)就写进无效字段 -
type值必须显式设为composer,不能省略或写成packagist - URL 结尾不能带
/,https://mirrors.aliyun.com/composer/会失败,正确是https://mirrors.aliyun.com/composer
验证方式:运行composer config --global repo.packagist,输出应为composer https://mirrors.aliyun.com/composer;再跑composer show -p | head -1,第一行 URL 应与你配置一致。
CI/CD 环境下重拉包列表失败?检查缓存挂载与权限
在 Docker 或 runner 中,~/.composer/cache可能被挂载为只读卷,或用户无权写入 repo 子目录,导致清理看似成功、实则被跳过:
- 先确认缓存路径:
composer config --global cache-dir - 进入该路径,手动
ls -la repo/,看目标镜像子目录是否真实被删 - 若目录仍在,可能是挂载覆盖了删除操作;此时应改用
--no-cache绕过缓存:composer show vendor/package --no-cache -vvv
这种场景下,强行删缓存不如临时禁用——--no-cache会跳过所有本地元数据查找,直连远程源拉取packages.json,更可靠。










