必须运行composer config --global cache-dir确认真实路径,它按环境变量→全局config→默认路径优先级生效,输出为空或报错说明未正确配置,Windows可粘贴%APPDATA%\Composer\Cache验证,Linux/macOS用du -sh $(composer config --global cache-dir)查看大小。

跨系统迁移 Composer 时,缓存配置不会自动适配新环境,必须手动重置;否则旧路径(如 ~/.composer/cache)在 Windows 上可能被解析为 Cygwin home,Linux/macOS 上可能因 $COMPOSER_HOME 变量缺失而 fallback 到错误位置,导致缓存写入失败或静默降级到默认路径。
怎么确认当前生效的缓存路径?
别信文档写的默认值,也别猜 ~/.composer/cache 是否还在用。真实路径由三者优先级决定:环境变量 → 全局 config → 默认路径。验证方式只有一种:
- 运行
composer config --global cache-dir—— 输出为空、null或报Key not found,说明全局没设或被忽略 - 运行
composer diag | grep "Cache directory"—— 这行输出才是 Composer 实际写入的位置,哪怕你刚改过 config - Windows 用户可直接把
%APPDATA%\Composer\Cache粘贴进资源管理器地址栏,右键“属性”看大小;Linux/macOS 用du -sh $(composer config --global cache-dir)
为什么不能直接拷贝旧 auth.json 或改 JSON 文件?
手改 ~/.composer/config.json 或 ~/.config/composer/config.json 极易出错,且 Composer 静默忽略整个文件而不报错:
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 多一个逗号、少一个引号、用了中文标点、BOM 头、路径含
~符号,都会导致 JSON 解析失败 - Git Bash 下编辑
%APPDATA%路径,实际写入的是 Cygwin home 目录下的文件,新 PowerShell 根本读不到 -
$COMPOSER_HOME若被设过,它会强制接管配置路径,且必须是绝对路径(~/composer不合法)
重置缓存路径的正确操作顺序
迁移后第一件事不是清缓存,而是确保新环境用上正确路径,避免后续所有命令都写错地方:
- 先创建目标目录:
mkdir -p /data/composer-cache(Linux/macOS)或mkdir "C:\Users\YourName\AppData\Local\Composer\Cache"(Windows) - 再设权限:Linux/macOS 执行
chmod 755 /data/composer-cache;Windows 右键目录 → “属性” → “安全” → 确保当前用户有“完全控制” - 最后写入配置:
composer config --global cache-dir /data/composer-cache(Linux/macOS)或composer config --global cache-dir "C:\Users\YourName\AppData\Local\Composer\Cache"(Windows,必须加英文双引号) - 验证是否生效:
composer config --global cache-dir必须输出你刚设的完整路径;再跑一次composer clear-cache,观察日志清理的是否是该路径
要不要搬旧缓存?哪些能搬、哪些必须删?
缓存不是全盘复制就完事。VCS 缓存(cache/vcs/)单个裸仓库动辄 500 MB 以上,且高度依赖 Git 配置、SSH 密钥、host 指纹,跨系统几乎无法复用:
- 建议只搬三类:
cache/files/(ZIP/TAR 包,离线安装必需)、cache/repo/(元数据,加速首次 update)、cache/archived/(Composer 2.5+ 新增归档缓存) - 禁用 VCS 缓存更省事:
composer config --global cache.vcs false,避免首次 install 重新 clone 私有仓库 - 搬完别忘了清旧缓存:
rm -rf ~/.composer/cache(Linux/macOS)或手动删%APPDATA%\Composer\Cache(Windows),防止残留路径干扰
最常被忽略的一点:跨系统迁移后,cache-dir 配置本身不解决认证问题。私有包仍需重新配置 auth.json 凭据,且不能直接拷贝 token——GitLab 或 Nexus 的 token 往往绑定 IP 或 UA,新机器必须用 composer config --global http-basic.example.com token user 重置,否则 composer install 会在拉取私有包时卡住或报 401。

















