强制重装需三步:删 composer.lock、清 Composer 缓存(composer clear-cache)、删 vendor/,再执行 composer install,否则仍可能复用缓存或旧 lock 导致非真正重装。

composer install 时跳过 lock 文件直接重装
默认情况下 composer install 完全依赖 composer.lock,哪怕你删了 vendor/,它也只按 lock 里记录的版本和哈希值还原——这不是“重装”,只是“复原”。想强制重新下载所有包(包括可能已缓存但实际需要刷新的),必须绕过 lock 的约束。
- 用
composer install --no-cache不起作用:它只跳过本地缓存,仍读 lock - 真正生效的是
composer install --ignore-platform-reqs?不,这个只忽略 PHP 扩展或版本警告,和下载逻辑无关 - 正确做法:先删掉
composer.lock,再跑composer install—— 这会触发全新解析依赖树,并生成新 lock - 更彻底的组合:删
vendor/+ 删composer.lock+composer install,确保从头开始,连旧 lock 的残留影响都清掉
composer update 时强制刷新指定包(不是全部)
有时候只想重装 monolog/monolog,但又怕 composer update monolog/monolog 拉来一堆间接依赖升级。默认行为确实会更新其子依赖,除非你明确锁死。
- 加
--with-dependencies是默认行为,不用显式写;想避免升级子依赖,得配合--no-update-with-dependencies(Composer 2.5+) - 更稳妥的做法是:先在
composer.json里把目标包版本写死成具体版本号(比如"monolog/monolog": "3.5.0"),再执行composer update monolog/monolog - 如果包已安装且版本匹配,
composer update默认不会重下载——加--force-reinstall才能强制走下载流程(注意:这个参数在 Composer 2.2+ 才稳定支持) - 验证是否真重下了:看终端输出有没有
Downloading...行,或检查vendor/下对应包的修改时间
清除 Composer 缓存后重装才真正“干净”
即使删了 vendor/ 和 composer.lock,Composer 仍可能从本地缓存(~/.composer/cache/)快速解压旧 zip 包,导致你以为重装了,其实用的是缓存里的旧文件。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 查缓存位置:
composer config --global cache-dir - 清缓存命令:
composer clear-cache(别用rm -rf直删目录,Composer 会重建结构) - 清完缓存再
composer install,你会看到大量Downloading https://api.github.com/...请求,这才是真实网络拉取 - CI 环境中常漏掉这步,导致构建产物看似更新了,实则用了缓存里的旧二进制(尤其影响带编译步骤的扩展包)
为什么 vendor 里有些包没变,但 hash 校验却失败?
执行 composer install 时出现 Invalid zip file, retrying... 或 Hash mismatch,通常不是网络问题,而是本地缓存 zip 被意外修改过(比如杀毒软件扫描、编辑器预加载、挂载卷权限异常)。
- 不要手动进
~/.composer/cache/files/里删单个 zip——容易删错,用composer clear-cache更安全 - 若只针对某个包出错,可临时禁用该包缓存:
composer config --global cache-files-ttl 0(设为 0 表示不缓存 zip) - Git 仓库里误提交了
vendor/中的 symlink 或 .gitmodules?会导致解压后路径混乱,hash 必然失败——务必确认vendor/不在 Git 管理中 - Windows 上用 WSL 共享目录时,NTFS 权限和符号链接支持不稳定,也是 hash 失败高发场景
强制重装最不可省的三步:删 lock、清缓存、删 vendor——少一步都可能让“重装”变成“假装重装”。

















