删缓存不等于重装依赖:composer clear-cache仅清~/.composer/cache下磁盘缓存,不影响vendor/和composer.lock;真正全新解析需同步删除vendor/、composer.lock、清缓存,并执行composer install --no-cache。

删缓存不等于重装依赖,composer clear-cache 只清磁盘缓存,不影响 vendor/ 和 composer.lock;真正触发全新解析,必须同时切断三处来源:已安装产物、锁定依据、本地缓存。
为什么 composer clear-cache 后 composer install 还是秒完成?
因为 composer install 的语义是“按 composer.lock 复原”,哪怕 vendor/ 是空的,它也会从 ~/.composer/cache/files/ 解压旧包——这不是重装,是缓存复用。
- 执行
composer clear-cache后仍秒装,大概率是composer.lock没变,且缓存里还有对应 zip 文件 -
composer install --no-cache才能强制跳过所有缓存查找,但前提是composer.lock本身已反映你想要的版本 - 若你改了
composer.json里的版本号,却没删composer.lock,install根本不会理你改的那行
彻底重装依赖的四步操作(Linux/macOS)
漏掉任意一步,都可能复用旧文件。尤其注意顺序和参数:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
rm -rf vendor/—— 清物理安装目录 -
rm -f composer.lock—— 删除锁定依据,让 Composer 重新走 SAT 解析 -
composer clear-cache—— 清全局缓存,避免复用旧 zip 或元数据 -
composer install --no-cache --prefer-dist --optimize-autoloader --no-dev——--no-cache是关键,禁用本次全部缓存;--prefer-dist避免 git clone 开销
清理 Packagist 元数据缓存,解决“拉不到新版包”
单纯 composer clear-cache 不保证更新远程索引,因为 packages.json 快照可能还躺在 repo 子目录里,下次 update 会直接读它。
- 手动删掉 Packagist 元数据缓存:
rm -rf ~/.composer/cache/repo/https---packagist.org/ - 删掉当前安装快照:
rm -f vendor/composer/installed.json - 删
composer.lock(如需全新解析)或至少运行composer update --dry-run -v,观察输出中是否出现Reading packages.json from https://repo.packagist.org/packages.json - 私有仓库同理,把
https---your-private-repo.com替换进路径即可
CI/CD 或 Docker 中清理缓存的注意事项
自动环境里 composer clear-cache 默认会卡在交互确认,且某些镜像或沙盒(如 snap 安装的 Composer)会让缓存路径失效。
- 务必加
--no-interaction:例如composer clear-cache --no-interaction - 构建阶段更推荐绕过缓存而非清理:直接用
composer install --no-cache --prefer-dist - 若使用自定义缓存路径(如 NFS 挂载),先确认
composer config --global cache-dir输出是否指向该路径,否则clear-cache删的是空目录 - 插件私有缓存(如旧版
hirak/prestissimo)不在clear-cache范围内,得查文档手动删对应子目录
最易被忽略的一点:缓存路径可能被 COMPOSER_CACHE_DIR 环境变量或公司镜像覆盖,~/.composer/cache 往往只是默认值,不是真实位置;每次清理前,先跑一遍 composer config --global cache-dir 确认路径,比盲目 rm -rf 安全得多。










