composer config -g repo.packagist 能查到全局配置文件 ~/.composer/config.json 中手动设置的 repo.packagist 字段值,返回 json 格式(如 {"type":"composer","url":"https://mirrors.aliyun.com/composer/"})表示已配置对应镜像;若为空或报错“key not exist”,说明未设全局镜像,将回退至默认源 https://packagist.org;该命令仅反映手动配置,不体现项目级配置、环境变量或插件动态接管的真实生效源。

composer config -g repo.packagist 能查到什么
这条命令直接读取全局配置文件 ~/.composer/config.json 里的 repo.packagist 字段,返回 JSON 格式结果,比如:{"type":"composer","url":"https://mirrors.aliyun.com/composer/"}。
如果返回空或提示 Key "repo.packagist" does not exist,说明没设过全局镜像,Composer 会 fallback 到默认源 https://packagist.org。
注意:它不反映项目级配置、环境变量或插件动态接管的情况,只是“你手动配过什么”。
为什么 composer config repo.packagist 有时返回空但实际走的是国内镜像
因为真实请求路径可能被以下方式覆盖:
-
COMPOSER_REPO_PACKAGIST环境变量存在时,优先级最高,完全绕过配置文件 - 项目根目录的
composer.json中定义了"repositories"(哪怕只写了个空对象),就会禁用 packagist.org,且该设置不会出现在config命令输出里 - 已安装插件如
phpcomposer/composer-proxy或 IDE 内置代理,会注入自定义 Repository 类,config命令根本查不到
怎么确认当前网络请求真正发到了哪个地址
最可靠的方式是触发一次真实 HTTP 请求并观察日志:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer show -p -v(加-v强制详细输出),控制台顶部会出现类似Downloading https://mirrors.tuna.tsinghua.edu.cn/composer/packs/...的行——这就是当前生效源 - 若没看到 URL,说明缓存命中或未触发远程请求,可先删掉
vendor/和composer.lock再试 -
composer diag不显示源地址,但它会发起一次对packagist.org的探测;配合-v可看到底层请求 URL
如何一次性排查所有可能干扰源的配置项
别只盯着 repo.packagist,这些地方都可能偷偷改源:
- 查所有 repo 相关配置:
composer config -l | grep repo(Linux/macOS)或composer config -l | findstr repo(Windows) - 检查环境变量:
echo $COMPOSER_REPO_PACKAGIST(Linux/macOS)或echo %COMPOSER_REPO_PACKAGIST%(Windows) - 看有没有插件在作祟:
composer global list | grep -i "mirror\|proxy",或检查~/.composer/composer.json里的require-dev和plugins
真实生效源永远以网络请求日志为准,配置命令只是线索,不是结论。










