composer clear-cache 清不掉 path 仓库的缓存,因为 path 类型仓库不走 ~/.composer/cache/ 流程,其“缓存”实为 vendor/ 中的软链接或复制文件,需手动删除对应目录才能清理。

composer clear-cache 为什么清不掉 path 仓库的缓存
它根本不会碰 path 类型仓库的缓存,因为 Composer 没把它当“缓存”——path 是本地文件系统直连,依赖直接软链接或复制进 vendor/,不走 ~/.composer/cache/ 流程。你执行 composer clear-cache,path 仓库下那些已安装的包纹丝不动,磁盘空间也不会释放。
删掉 vendor/ 下的 path 依赖才算真正清理
path 仓库的“缓存”实际就藏在 vendor/ 目录里:要么是符号链接(默认行为),要么是完整复制(加了 "symlink": false)。所以真要清理,必须手动处理 vendor/:
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 查哪些包来自
path:看项目composer.json的"repositories"字段是否含{"type": "path", "url": "..."},再对照composer.lock里对应包的"source"字段,"type": "path"就是它 - 删对应目录:
rm -rf vendor/your-vendor/your-package(Linux/macOS)或rd /s /q vendor\your-vendor\your-package(Windows) - 别删整个
vendor/:除非你想重装全部依赖;只删path包更安全
下次 install/update 还会自动重建?可以禁用
只要 composer.json 里还配置着 path 仓库,下次 composer install 就会照常拉进来。想临时跳过,有俩办法:
- 注释或删掉
composer.json中对应的"repositories"块,再运行composer update --lock更新锁文件 - 用环境变量临时屏蔽:
COMPOSER_NO_PATH_REPO=1 composer install(Composer ≥ 2.5),它会跳过所有path类型仓库解析 - 注意:
COMPOSER_NO_PATH_REPO不影响已安装的vendor/内容,只控制后续安装逻辑
为什么不能靠 clear-cache 或 --no-cache 解决 path 问题
--no-cache 参数只跳过读取 ~/.composer/cache/ 里的 ZIP 和元数据,对 path 仓库完全无效;clear-cache 根本不扫描 vendor/,更不会识别软链接目标是否属于 path。常见误操作是清完缓存发现 vendor/ 里那个几 GB 的本地包还在——那不是缓存残留,就是它本来的位置。

















