composer install什么都没做是因为require为空、composer.lock缺失或损坏、当前目录非项目根目录;需检查require字段含第三方包、lock文件存在且非空、pwd与composer.json路径一致。

composer install 什么都没做,vendor 还是空的
不是命令没跑,是它压根没触发安装逻辑。常见原因就三个:composer.json 里 require 字段为空、composer.lock 缺失或损坏、当前目录不是项目根目录。
- 运行
cat composer.json | jq '.require'(或直接打开看),确认至少有一条非平台依赖,比如"monolog/monolog": "^3.0";只写"php": ">=8.1"不算 - 执行
ls -l composer.lock,文件存在且大小 > 0;若不存在,composer install会按composer.json解析新版本并生成 lock,但若require为空,它就直接退出,不建vendor - 确保你在含
composer.json的目录下执行命令——pwd输出必须和ls composer.json能看到文件的位置一致
镜像配置写了却还是卡在 downloading provider-*.json
镜像根本没生效,Composer 自动 fallback 到官方源,导致慢或超时。关键不是“配没配”,而是“配对没配对”。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer config --global repo.packagist,输出必须是完整 URL 且以斜杠结尾:https://mirrors.aliyun.com/composer/✅;少斜杠、拼错成composer.com或漏掉--global都会导致 404 后静默回退 - 验证镜像连通性:
curl -I https://mirrors.aliyun.com/composer/,应返回HTTP/2 200;若超时或 503,换腾讯云:composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ - 私有包报错?检查
composer.json的repositories是否单独声明了该源——镜像只代理 packagist.org,不代理私有仓库
删了 vendor 后 composer install 仍失败或不补全
不是网络问题,是状态残留导致 Composer 走了“增量更新”而非“完整重建”。它看到 vendor/ 目录存在(哪怕空),就不清空重来。
- 确认
vendor是真删干净:ls -la vendor应报No such file or directory;如果还存在但为空,rm -rf vendor再试一次 - 删完立刻跑
composer install,别加--no-plugins或--no-scripts以外的参数——这些开关可能跳过 autoload 生成,导致后续require 'vendor/autoload.php'失败 - 如果仍失败,加
--no-cache:它绕过本地缓存干扰,强制从镜像拉取,尤其适合刚清过~/.composer/cache但旧坏包还在内存里的场景
autoload.php 找不到或 Class not found
90% 不是 vendor 没装,而是路径或映射没对上。Composer 不管你 require 的路径写得对不对,它只管生成 vendor/autoload.php 这个文件本身。
- 先确认
vendor/autoload.php物理存在:ls -l vendor/autoload.php;不存在就说明composer install根本没成功执行完 - 检查脚本里
require的路径是否写死:require 'vendor/autoload.php'只在项目根目录下有效;子目录要用require __DIR__.'/../vendor/autoload.php'; - 类找不到?运行
composer dump-autoload -v看输出里有没有扫到你的命名空间路径;再打开vendor/composer/autoload_psr4.php,搜索你的前缀(如'App\'),确认映射路径是否正确
composer.lock 和本地 PHP 版本之间的隐式契约——它不报错,但差一个点号,install 就会跳过某个包,留下半残的 vendor。










