不加-g的composer config repo.packagist命令仅修改当前项目composer.json中的repositories配置,不影响其他项目;全局生效必须加--global参数。

composer config repo.packagist 命令没加 -g,结果只改了当前项目
很多人执行 composer config repo.packagist composer https://packagist.org 后发现其他项目还是走镜像,是因为这条命令默认作用于当前目录下的 composer.json,不是全局配置。它会在项目里写入 "repositories" 块,下次进这个项目就一直生效,但对别的项目完全没影响。
如果你只是临时调试,又不想污染项目配置,更稳妥的做法是:
- 进入项目目录后,先备份: cp composer.json composer.json.bak
- 再运行 composer config repo.packagist composer https://packagist.org
- 测试完立刻还原:mv composer.json.bak composer.json
- 或者直接删掉刚加的 repositories 字段(别只删 URL,整个字段要清干净)
为什么 composer clear-cache 后还是从镜像下载
缓存清理只删 ~/.composer/cache/ 里的文件,不影响源地址配置本身。如果 composer config repo.packagist(不带 -g)仍输出镜像地址,说明项目级配置还在起效;如果 composer config -g repos.packagist 有输出,说明全局配置没清干净。
必须按顺序检查三层:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 环境变量:运行
env | grep COMPOSER_REPO(Linux/macOS)或echo %COMPOSER_REPO_PACKAGIST%(Windows),存在就unset或set COMPOSER_REPO_PACKAGIST= - 项目级:打开
composer.json搜索"repositories",整段删掉,再跑composer update --lock - 全局:确认
composer config -g repos.packagist和composer config -g repo.packagist都无输出
临时切回官方源后,composer require 却报 Could not parse version constraint
这是 Composer 2.2–2.4 小版本的 fallback bug:当你用 --unset 清掉配置后,它尝试自动回退到默认源,但解析逻辑会崩溃。此时别折腾删删改改,直接覆盖最稳。
进项目目录后运行:composer config repo.packagist composer https://packagist.org
这条命令绕过所有 fallback 判断,强制指定地址,所有 >=2.0 版本都认。
注意两点:
- 字段名必须是 repo.packagist(单数 repo),不是 repos.packagist(复数)
- URL 必须带 https://,不能漏协议头,否则会当成本地路径处理
验证是否真走官方源,只看命令输出是错的
执行完命令没报错 ≠ 生效。真正有效的验证只有两个动作:
第一,查实际请求地址:composer require monolog/monolog --no-install -vvv
滚动日志里找 Downloading https:// 开头的行,URL 必须是 https://repo.packagist.org,不是 mirrors.aliyun.com 或任何其他域名。
第二,确认缓存已空:
Linux/macOS: ls -la ~/.composer/cache/ 应为空或只剩空子目录
Windows: dir %APPDATA%\Composer\Cache\ 同理
这两步缺一不可。缓存不清,哪怕配置全对,Composer 仍会拿旧镜像缓存的 packages.json 去匹配包版本,导致 composer update 找不到新版本、锁文件错乱、甚至装错依赖。

















