必须彻底重装依赖:先删vendor并清缓存,再用composer install --no-cache强制全新安装;若SAT卡死,可用composer why-not定位冲突或删lock后加--ignore-platform-reqs应急;最后用tinker和serve验证。

当Laravel项目因vendor目录丢失、composer.lock损坏或依赖冲突导致无法启动时,必须彻底重装依赖,不能只运行composer install——它会复用旧缓存甚至跳过关键包下载。
确认重装前提条件
进入项目根目录,检查是否存在composer.json和composer.lock文件。若composer.lock缺失或内容明显残缺(如只有开头几行、无require块),必须先执行composer update --no-interaction生成新lock文件,否则install会报错“Your lock file does not contain a compatible set of packages”。
运行php -v确认PHP版本≥8.0;运行composer --version确认Composer可用。若任一失败,重装无意义。
三步强制重装依赖
这一步必须严格按顺序执行,缺一不可:
- 删除现有依赖:执行
rm -rf vendor/(Linux/macOS)或rmdir /s vendor(Windows),【必须清空vendor目录,否则Composer可能复用残留的autoload映射】; - 清理全局缓存:执行
composer clear-cache,然后进入缓存目录(用composer config --global cache-dir查路径),手动确认downloads/和files/子目录为空; - 全新安装:执行
composer install --no-cache --prefer-dist --optimize-autoloader --no-dev,其中--no-cache是核心参数,它禁用本次所有缓存查找,确保每个包都重新下载校验。
绕过SAT卡死的应急方案
如果执行composer install或update后长时间停在Resolving dependencies through SAT,说明约束逻辑不可解,不是网速问题。此时立即中断,改用定位法:
方法一:想装某个特定包却失败?运行composer why-not vendor/package:version,例如composer why-not laravel/sanctum:^4.0,输出会逐层列出阻断链——可能是illuminate/support ^8.0被根composer.json硬性锁定,也可能是某开发依赖声明了conflict。
方法二:不指定目标,只想快速恢复可运行状态?删掉composer.lock,再运行composer install --no-cache --ignore-platform-reqs,【该参数跳过PHP扩展版本检查,仅用于紧急调试,生产环境禁用】。
验证安装结果
执行php artisan tinker,输入app()后回车,看到Laravel应用实例输出即表示Autoloader加载正常;
执行php artisan serve --port=8001,浏览器访问http://127.0.0.1:8001能显示欢迎页,说明HTTP内核与服务容器已就绪。


















