配置未生效,因键名必须为repo.packagist(单数)、type值必须显式写composer、url须https且结尾带/;输出非完整json如{"type":"composer","url":"..."}即失败。

composer config -g repo.packagist 输出不对,说明根本没生效
运行 composer config -g repo.packagist 后,如果输出不是类似 {"type":"composer","url":"https://packagist.org/"} 的完整 JSON,而是空、null、报错,或仍是镜像地址,那说明配置没写对。常见原因包括:
- 键名写成
repos.packagist(多一个s)——Composer 2.x 只认单数repo.packagist - 命令漏了中间的
composer类型参数,比如写成composer config -g repo.packagist https://packagist.org/(缺composer) - URL 少了末尾
/,导致路径拼接错误,静默 fallback 到官方源 - 用了
sudo配置但普通用户执行命令,实际读的是另一个用户的配置文件
明明删了配置,install 还走阿里云?查三层覆盖链
Composer 查源顺序是:环境变量 > 当前项目 composer.json 中的 repositories 字段 > 全局配置。哪怕全局删干净了,只要项目里有这个字段,它就优先生效。排查方式:
- 查项目级:
composer config repositories—— 有输出就说明它在起作用 - 查环境变量:
env | grep COMPOSER_REPO_PACKAGIST(Linux/macOS)或echo %COMPOSER_REPO_PACKAGIST%(Windows) - 查全局:
composer config -g repo.packagist(注意是单数) - 项目里若存在
"repositories": {"packagist.org": false}或空数组"repositories": [],必须手动删掉整个repositories块
换源后 install 报 checksum failed?vendor 和 lock 文件必须清
哈希校验失败不是缓存没清,而是 composer.lock 里硬编码了旧 dist 包的 dist.sha256 和 provider 地址(如 https://packagist.org/p2/xxx.json)。只跑 composer clear-cache 没用。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 必须执行:
rm -rf vendor composer.lock(Windows 用rd /s /q vendor & del composer.lock) - 再运行:
composer install --no-cache --force-checksums,强制拉取最新元数据并校验 - 如果项目依赖插件(如
laravel/installer),还需确认allow-plugins配置是否放行,否则插件静默不加载
curl -I 验证比看文档更可靠
别信“镜像已同步”,直接测真实响应:
-
curl -I https://repo.packagist.org/packages.json应返回HTTP/2 200 -
curl -I https://mirrors.aliyun.com/composer/packages.json若返回404、301或 HTML 页面,说明该镜像不可用或地址已下线 - 清华、腾讯、华为等镜像 URL 必须完整带
/composer/,写成https://mirrors.tuna.tsinghua.edu.cn/composer(缺末尾/)会拼出非法路径
最常被忽略的一点:项目已有 composer.lock 时,它会固化所有 provider 地址和哈希值;不删它,换源只是自欺欺人。










