composer diag 输出的“Cache directory”行才是真实缓存路径,它综合环境变量、配置与默认逻辑;composer config -g cache-dir 仅显示配置值,不反映实际生效路径。

运行 composer diag 看真实缓存路径
别信 composer config -g cache-dir 的输出值——它只显示你“写进去”的配置,不反映实际生效路径。composer diag 才是唯一可信依据,它会综合环境变量、全局配置、默认逻辑后输出最终结果。重点关注 Cache directory: 这一行,后面跟的路径就是 Composer 当前真正使用的缓存根目录。
用 ls 或 dir 确认目录有新文件生成
光看路径没用,得验证它真在写入。执行完 composer install 或 composer update 后,立刻检查该路径下是否有新增内容:
-
ls -lh $(composer diag | grep "Cache directory" | cut -d' ' -f3)(Linux/macOS) -
dir %APPDATA%\Roaming\Composer\Cache(Windows,若composer diag显示的是该路径)
你应该能看到 repo/、files/、vcs/ 等子目录,且里面文件修改时间接近你刚执行的命令时间。如果目录为空或报 Permission denied,说明路径虽设对了,但没写入权限或被其他机制覆盖。
注意 COMPOSER_CACHE_DIR 环境变量的优先级
即使你用 composer config -g cache-dir 设了全局路径,只要终端里设置了 COMPOSER_CACHE_DIR,它就会直接覆盖所有配置。验证时先检查:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
echo $COMPOSER_CACHE_DIR(Linux/macOS) -
echo %COMPOSER_CACHE_DIR%(Windows)
如果输出非空,那 composer diag 显示的路径一定就是这个值。临时禁用它再试一次,就能确认是不是环境变量在“抢戏”。
项目级 config.cache-dir 字段完全无效
别在项目 composer.json 的 config 段里写 "cache-dir": "/xxx"——这个字段对缓存路径零影响。Composer 的 install、update 等核心命令压根不读它。它只被 composer config 命令解析,用于设置 vendor-dir 或 bin-dir 这类项目行为。写在这里只会制造假象,还可能让团队成员误以为路径已统一。
真正容易被忽略的是:缓存路径生效 ≠ 缓存内容可用。比如 Windows 下目录权限不对、Docker 容器没挂载 symlink 支持、或者镜像元数据缓存没清,都会导致 composer diag 显示路径正确,但后续命令仍卡住或回退到默认源。

















