composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ 是唯一推荐的全局写法,因 Composer 2.5+ 强制校验键名、type 和 URL 末尾斜杠,缺一即静默失效且不报错。

直接执行 composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ 就能生效,但漏掉任何一环(斜杠、键名、缓存)都会静默失败。
为什么 composer config -g repo.packagist 是唯一推荐的全局写法
Composer 2.5+ 强制校验键名和 type 字段,写错就完全不加载,且不报错。必须满足三要素:
-
repo.packagist是固定键名——不能写成repos.packagist、repositories.packagist或repo.packagist.org -
composer必须作为type值显式写出,不能省略 -
https://mirrors.cloud.tencent.com/composer/末尾的/缺不得,否则会拼出.../composer/packages.json导致 404 或Invalid repository type
执行后验证是否写入成功:composer config -g repo.packagist 应输出完整 JSON:{"type":"composer","url":"https://mirrors.cloud.tencent.com/composer/"}
配完还是走 packagist.org?先查这三处覆盖源
Composer 的仓库优先级是:项目 composer.json 中的 repositories → 当前用户配置 → 全局配置。只要项目里有这个字段,全局设置就失效:
- 进项目目录运行
composer config repo.packagist,如果有输出,说明被项目级覆盖了 - 检查项目
composer.json是否含"repositories": {...},哪怕只有一行空数组也会屏蔽全局 - 运行
composer config -l | grep repositories.packagist,若输出为空或仍是packagist.org,说明没生效
想保留私有源又加镜像?别手动改 JSON,在项目目录下执行:composer config repo.packagist composer https://mirrors.cloud.tencent.com/composer/(不加 -g),它会安全 merge 进现有 repositories 数组。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
CI/CD 流水线里临时切镜像,别污染环境
腾讯云 CODING 或 Jenkins 构建时,用 --repository-url 参数最干净:
-
composer install --no-interaction --repository-url=https://mirrors.cloud.tencent.com/composer/会完全忽略所有已配置源(包括项目级和全局),只连你指定地址 -
-r参数不支持create-project,硬套会静默失败;等效写法是:composer create-project laravel/laravel demo --repository=https://mirrors.cloud.tencent.com/composer/ - 流水线脚本中务必搭配清理:
rm -f composer.lock vendor/ && composer install --no-interaction --repository-url=...,否则旧lock文件里的dist.url仍指向 GitHub
验证是否真走镜像:加 -vvv 后搜日志中的 GET 行,应看到 GET https://mirrors.cloud.tencent.com/composer/p2/,而不是 packagist.org。
换源后必须清缓存,否则行为与配置不一致
Composer 会复用本地元数据缓存(比如 p2/ 索引),即使配置正确,缓存未清仍可能向 packagist.org 发请求:
- 执行
composer clear-cache清掉本地元数据缓存 - 如果已在项目中跑过
install或update,删掉composer.lock和vendor/目录再重来 - 代理干扰也要排查:
echo $http_proxy(Linux/macOS)或set http_proxy(Windows),有值就unset http_proxy https_proxy
最常被忽略的是:镜像 URL 末尾缺 /、项目 composer.json 里多了一行空 repositories、以及缓存没清——这三者占实际失败案例的 90% 以上。

















