composer config -g repo.packagist 命令必须显式指定 composer 为 type 值,否则配置静默无效;键名须为单数 repo.packagist,url 必须 https 且末尾带 /,验证需输出完整 json 对象。

composer config -g repo.packagist 命令必须带 type 参数
不加 composer 这个 type 值,配置就无效。比如写成 composer config -g repo.packagist https://mirrors.aliyun.com/composer/,Composer 会静默接受但实际不生效——它只认完整结构 {"type": "composer", "url": "..."}。正确写法是:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/- 旧版 Composer 1.x 不支持
repo.packagist键名,得用composer config -g repos.packagist '{"type":"composer","url":"https://mirrors.aliyun.com/composer/"}' - URL 末尾必须有
/,少一个斜杠会导致拼接出错,比如https://mirrors.aliyun.com/composer/p2/foo.json变成https://mirrors.aliyun.com/composerp2/foo.json,直接 404
验证镜像是否真在用,别只看 config 输出
composer config -g repo.packagist 输出 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 是必要条件,但不是充分条件。缓存没清、旧 lock 文件残留、甚至 DNS 缓存都可能让请求仍发往 packagist.org。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 必须加
-vvv运行一次安装:composer install -vvv 2>&1 | grep "mirrors.aliyun" - 日志里看到类似
GET https://mirrors.aliyun.com/composer/p2/laravel/framework.json才算真正走镜像 - 如果只看到
GET https://packagist.org/p2/...或报Connection timed out,说明配置没起作用或被覆盖
项目级配置比全局更可靠,尤其在 CI/CD 场景
全局配置容易被不同用户、不同 PHP 版本或容器环境覆盖。CI 脚本里用 sudo composer config -g 写进 root 用户配置,但 runner 是普通用户,就读不到。
- 推荐进项目根目录执行:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/ - 该命令会自动向
composer.json的repositories数组追加 packagist 条目,不破坏已有私有源 - Git 提交后,新人拉代码即用,Docker 构建时也无需额外配置命令
- 若
composer.json已有空"repositories": {},手动编辑易漏逗号或引号,务必用命令操作
镜像只加速下载,依赖解析卡住得另查原因
换完源还卡在 Resolving dependencies 阶段?那跟网络无关,是本地环境问题。
- Xdebug 启用中会让解析慢 5–10 倍,临时禁用:
php -d xdebug.mode=off $(which composer) install - PHP 内存不足(默认 128M)会反复 GC,加
COMPOSER_MEMORY_LIMIT=-1再试 -
platform配置与实际 PHP 版本不匹配,比如"php": "7.4"却在 PHP 8.2 上跑,触发降级查找逻辑 -
composer.lock里残留已下线包(如 packagist.laravel-china.org 已于 2025 年底停更),删掉vendor/和composer.lock,再composer install --no-cache
--prefer-dist 参数、关 Xdebug —— 这些都不是“锦上添花”,而是和镜像配置一样,缺一不可的硬性条件。漏掉任意一项,下载速度可能只提升 30%,而不是 10 倍。










