composer diag 显示的 cache directory 才是实际生效的缓存路径,优先级高于 config 输出值;环境变量 composer_cache_dir > 全局 config.json > 项目 config.json,且需确保路径有读写权限。

composer config cache-dir 显示的是当前配置值,但不一定真实生效
执行 composer config cache-dir 看到的路径,只是全局或当前项目 config.json 里显式写死的值。Composer 实际用的缓存目录可能被环境变量、系统级配置或命令行参数覆盖。
- 优先级顺序是:
COMPOSER_CACHE_DIR环境变量 > 全局config.json> 项目级config.json - 如果没设过
cache-dir,composer config cache-dir会输出空,不代表没缓存——它会退回到默认路径 - Windows 下默认是
%LOCALAPPDATA%\Composer\cache,Linux/macOS 是~/.composer/cache
用 composer global config 查看全局缓存配置是否被改写
很多人以为改了项目里的 composer.json 就能控制缓存位置,其实项目配置不生效——cache-dir 是全局级配置项,只能在全局或系统级生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer global config cache-dir查看是否被手动改过 - 运行
composer global config --list可看到所有全局配置,确认cache-dir是否存在且非空 - 若输出类似
cache-dir : /tmp/composer-cache,说明缓存已被重定向,且该路径需有读写权限
真正生效的缓存路径得靠 composer diag 验证
composer diag 是唯一能告诉你“此刻 Composer 实际用哪个目录”的命令,它绕过配置表层,直接检查运行时行为。
- 运行
composer diag,关注输出中Cache directory这一行(不是Config directory) - 如果显示
Cache directory: /home/user/.composer/cache,那就以这个为准 - 若提示
Cache is not working due to permissions,说明路径存在但不可写,即使config显示正常也白搭
环境变量 COMPOSER_CACHE_DIR 会彻底绕过所有 config 设置
这是最常被忽略的覆盖方式。只要 shell 里设置了 COMPOSER_CACHE_DIR,无论 config 里怎么写,Composer 都认这个。
- 检查是否启用:
echo $COMPOSER_CACHE_DIR(Linux/macOS)或echo %COMPOSER_CACHE_DIR%(Windows) - 临时禁用测试:Linux/macOS 下运行
COMPOSER_CACHE_DIR= composer diag,看Cache directory是否变回默认值 - CI/CD 脚本里经常硬编码这个变量,本地调试时容易误判为配置问题
diag 没验证、权限没给够。盯着 composer diag 的输出看,比翻 config 文件可靠得多。










