直接运行 composer clear-cache 仅清理 ~/.composer/cache 下的 files/repo/vcs 等全局缓存(通常<500mb),对 laravel 部署瓶颈无效;真正需清理的是 vendor/、bootstrap/cache/、storage/framework/cache/ 等项目级目录,它们合计占 400–1100mb,才是磁盘告警主因。

直接运行 composer clear-cache 就能清理 Composer 全局缓存,但它对 Laravel 部署前的“真正瓶颈”基本无效——你真正该清的是 vendor/ 和框架级缓存(bootstrap/cache/、storage/cache/),不是 ~/.composer/cache。
为什么 composer clear-cache 对部署没用?
它只删 ~/.composer/cache/files/(下载包)、repo/(元数据)、vcs/(Git 克隆)——这些加起来通常不到 500 MB;而一个中等 Laravel 项目 vendor/ 占 300–800 MB,bootstrap/cache/compiled.php + storage/cache/ 再吃掉 100–300 MB。磁盘告警时,90% 的空间实际卡在项目本地,不在全局缓存里。
-
composer clear-cache后composer install变慢?正常,它只是把下载压力后移,不解决部署卡顿 - CI/CD 构建中无脑加这句,反而延长构建时间
- 若你刚换镜像源但
composer update还拉旧包,问题在composer.lock或镜像 TTL,不是缓存没清干净
部署前该清什么、怎么清?
重点是切断所有本地残留影响,确保从干净状态重建:
- 删
vendor/:rm -rf vendor/(Linux/macOS)或rmdir /s vendor(Windows) - 清框架缓存:
php artisan config:clear、php artisan cache:clear、php artisan view:clear、php artisan route:clear - 删编译文件:
rm -f bootstrap/cache/*.php(Laravel 9+ 推荐用php artisan optimize:clear) - 删临时视图:
rm -rf storage/framework/views/*(避免旧模板残留)
注意:这些命令必须在项目根目录下执行,且 vendor/autoload.php 已存在(即已跑过至少一次 composer install);否则 artisan 会报 Class not found。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
如何让清理动作自动发生在部署流程中?
靠 composer.json 的 post-autoload-dump 钩子,不是 post-install-cmd:
-
post-install-cmd触发太早,autoload.php可能还没写完,artisan必然失败 -
post-autoload-dump在自动加载器就绪后才运行,此时artisan可安全调用 - 示例配置(放入
composer.json的scripts中):"post-autoload-dump": [ "@php artisan config:clear --no-interaction --env=production", "@php artisan cache:clear --no-interaction --env=production", "@php artisan view:clear --no-interaction --env=production" ]
部署时执行 composer install --no-dev --optimize-autoloader,钩子会自动触发清理,无需手动干预。
容易被忽略的磁盘黑洞:vcs/ 和临时 ZIP 文件
composer clear-cache 默认跳过 vcs/ 目录,但一个 Git 裸仓库(如 laravel/framework 的克隆)就占 300–800 MB,还耗尽 inode。它不参与部署,纯属历史残留:
- 手动清:
rm -rf $(composer config --global cache-dir)/vcs/*(Linux/macOS) - Windows:
rd /s /q "%APPDATA%\Composer\Cache\vcs" - 还有个隐形位置:
sys_get_temp_dir()下堆积的composer_*.zip、php*.phar,clear-cache完全不碰,需单独清理
这些目录不随项目走,是全局污染源;每半年扫一次比每次部署都清更合理。










