composer install 卡在“loading composer repositories”是因国内访问 packagist.org 不稳定,应全局配置阿里云镜像:composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/。

composer install 为什么卡在“Loading composer repositories”
这是网络问题,不是命令写错了。国内默认走 packagist.org,但它的 CDN 节点在国内访问不稳定,经常超时或返回空响应。
-
composer install会先向packagist.org查询所有依赖的元数据,这一步失败就会卡住 - 不建议手动改
composer.json的repositories字段硬编码镜像——容易和团队配置冲突 - 更稳妥的做法是全局配置中国镜像:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
(注意:该镜像已停用)
当前推荐用:composer config -g repo.packagist composer https://packagist.org
+ 配合COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/环境变量,或直接用:composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/
- 如果项目已有
vendor/和composer.lock,但想强制重装(比如换了 PHP 版本),加--no-cache参数避免读本地缓存导致行为异常
composer install 报错 “Your requirements could not be resolved”
根本原因是 composer.lock 里记录的包版本与当前环境(PHP 版本、已安装扩展、其他依赖约束)不兼容,不是 composer.json 写得不对。
- 常见诱因:PHP 升级后,某些包声明了
"php": "^7.4",而你已切到 PHP 8.2,但composer.lock还锁着旧版不兼容的子依赖 - 别急着删
composer.lock—— 它是协作关键,删了会导致队友重装出不同版本 - 优先尝试:
composer update --lock
,它只更新 lock 文件里的版本号,不实际下载,能修复因 PHP 版本变化引发的解析失败 - 如果必须重算依赖树,用:
composer update --dry-run
先看会动哪些包,再决定是否执行composer update
composer install 和 composer update 到底该用哪个
composer install 是部署动作,composer update 是开发动作,混用会破坏可复现性。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- CI/CD 流水线、线上服务器、Docker 构建阶段,**必须用
composer install** —— 它严格按composer.lock安装,保证环境一致 - 本地开发中新增一个包,或想升级某个依赖的小版本,用:
composer require monolog/monolog:^2.0
或composer update monolog/monolog
- 执行
composer install时若发现没有composer.lock,它会自动生成一份,但此时安装的版本是最新兼容版,不是团队共识版 —— 所以新项目初始化后应立刻提交composer.lock - Git 忽略
vendor/,但绝不能忽略composer.lock
PHP 版本不匹配导致 install 失败但没报具体错误
Composer 本身有 PHP 版本要求,但更隐蔽的问题是:它允许运行,却在解析依赖时静默跳过不兼容的包,最终装出一堆漏掉的依赖,运行时报 Class not found。
- 检查当前 PHP 版本:
php -v
;确认composer.json中config.platform.php是否设了假版本(比如写成"8.0"但实际是8.2) - 临时锁定平台版本可绕过检测(不推荐长期用):
composer install --ignore-platform-reqs
,但之后运行时大概率出错 - 真正要做的:在
composer.json的config下加:"platform": {"php": "8.2.10"},让 Composer 按真实环境计算依赖,而不是信你的口头承诺 - 很多 Laravel 项目在 PHP 8.3 下
install成功但启动报错,就是因为config.platform.php还写着8.1,导致装了不兼容的symfony/polyfill旧版
事情说清了就结束










