clear-cache && install常失效,因缓存清理不触及vendor/和composer.lock;真正有效需同步删除vendor/、composer.lock并加--no-cache参数重装。

直接运行 composer clear-cache && composer install 就能完成两步操作,但多数情况下它并不能真正解决问题——因为缓存清理后仍可能复用损坏的 vendor/ 或过期的 composer.lock。
为什么 clear-cache && install 常常失效
Composer 的缓存(~/.composer/cache)只管下载物和元数据,不碰项目本地的 vendor/ 和 composer.lock。如果这两个文件本身已损坏或版本错位,清完缓存再 install 依然会复用旧状态,报错照旧。
-
composer.lock锁定的是旧版依赖关系,而缓存里可能已有新版包的元数据,导致 SAT 解析卡死 -
vendor/里残留部分损坏文件(比如被中断写入的 PHP 文件),install默认跳过已存在目录,不会重装 - 某些错误(如
hash verification failed)是缓存 +vendor/不一致共同触发的,单清缓存没用
真正起效的一条命令长什么样
要让 Composer 从干净起点重来,必须同时切断缓存、锁文件、已安装依赖三处“记忆”。推荐这条带参数的组合命令:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer clear-cache && rm -rf vendor/ composer.lock && composer install --no-cache --prefer-dist
Windows 用户请改用:
composer clear-cache && rmdir /s /q vendor && del composer.lock && composer install --no-cache --prefer-dist
-
--no-cache:本次执行完全绕过缓存查找,每个包都重新下载校验,避免复用损坏缓存 -
--prefer-dist:优先用 zip 包而非 git clone,减少临时文件和磁盘碎片,也规避 vcs 缓存干扰 - 删
composer.lock是关键——否则install只按旧锁安装,根本不会重新解析依赖树
执行前必须确认的三件事
这条命令破坏性较强,跑之前务必核对:
- 当前目录下确有
composer.json,且内容完整(可先git status确认未修改) - 没有正在运行的
composer进程(尤其 CI 环境中后台任务可能锁住缓存目录) - 缓存路径归属正常:
composer config --global cache-dir输出路径的属主是当前用户,不是root;否则clear-cache会静默失败
最常被忽略的是缓存路径权限问题——命令看似执行成功,其实什么都没删掉,接着就报 No space left on device 或 corrupted archive。遇到异常,先查 ls -ld $(composer config --global cache-dir),再决定要不要加 sudo chown。










