composer缓存目录默认为linux/macos的~/.composer/cache、windows的%appdata%\composer\cache;可通过composer config --global cache-dir查看或修改,环境变量composer_cache_dir优先级更高,需注意权限、磁盘性能及ci清理逻辑。

Composer缓存目录在哪?默认位置和判断方法
Composer 默认会把下载的包缓存在用户主目录下的 vendor/composer 之外的独立位置,不是项目内——这点很多人误以为缓存就在本地 vendor 里。实际缓存是全局共享的,路径取决于系统:~/.composer/cache(Linux/macOS),%APPDATA%\Composer\Cache(Windows)。你可以用命令快速确认:composer config --global cache-dir。
如何用 composer config 修改缓存目录
改缓存目录最直接的方式是设置全局配置项 cache-dir。注意这不是写进 composer.json,而是作用于 Composer 自身行为的全局配置:
- 运行
composer config --global cache-dir /path/to/your/cache(Linux/macOS)或composer config --global cache-dir "D:\composer-cache"(Windows) - 执行后,
composer install或composer update就会自动读写新路径 - 如果路径含空格或特殊字符,Windows 下务必用英文双引号包裹
- 修改后建议运行
composer clear-cache清掉旧缓存,避免混用
环境变量 COMPOSER_CACHE_DIR 优先级更高
当同时设置了 cache-dir 配置和环境变量时,COMPOSER_CACHE_DIR 会覆盖前者——这是 Composer 的加载顺序决定的。适合 CI/CD 或多用户共享机器场景:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Linux/macOS:在 shell 启动文件中加
export COMPOSER_CACHE_DIR="/mnt/fast-ssd/composer-cache" - Windows(CMD):
set COMPOSER_CACHE_DIR=E:\composer-cache;PowerShell:$env:COMPOSER_CACHE_DIR="E:\composer-cache" - 该变量对当前 shell 及其子进程生效,无需重启 Composer
- 注意:Docker 中需用
ENV COMPOSER_CACHE_DIR显式注入,不能只靠docker run -e
改缓存目录要注意的三个实际问题
缓存目录不是随便换完就万事大吉。真实项目里容易卡在这几个点上:
- 权限问题:新路径若在 NFS 或受限挂载点(如 Docker volume),Composer 可能因无写权限报错
file_put_contents(...): failed to open stream: Permission denied,需确保运行用户有读写+执行(进入目录)权限 - 磁盘空间与 I/O:缓存目录若指向机械硬盘或远程存储,
composer update解压大量 zip 包时会明显变慢,建议 SSD 本地路径 - CI 环境清理:有些 CI 脚本习惯删
~/.composer整个目录,但若你用COMPOSER_CACHE_DIR指向别处,这个清理动作就失效了,得同步更新清理逻辑
缓存路径本身不复杂,但一旦跨环境、跨用户、跨存储介质,权限、性能、清理策略这几个点就很容易漏掉。










