composer config –list 默认只显示全局生效且非空的配置项,不显示被覆盖、继承或重置的值;需用 –global、–file 或 -v 参数分别查看全局配置、项目配置块及配置来源。
composer config --list 是查看当前 Composer 配置的最直接方式,但它默认只显示「全局生效」且「非空」的配置项——很多你设过但被覆盖、继承或重置的值根本不会出现。
为什么 composer config --list 看不到刚设置的配置?
Composer 配置分三层:系统级(/etc/composer/config.json)、用户级(~/.composer/config.json)、项目级(./composer.json 中的 config 字段)。composer config --list 只合并并输出最终生效值,不告诉你来源;如果某配置在项目级被设为 null 或空字符串,它会被上层值覆盖,但该覆盖值若未显式设置,也不会出现在列表中。
- 执行
composer config --list --global查看全局配置(含未被覆盖的默认值) - 执行
composer config --list --file composer.json查看当前项目composer.json中声明的config块(即使值为空) - 用
composer config --list -v可看到每项配置的来源路径(如global、project),这是定位冲突的关键
composer config 的常见误用场景
很多人以为 composer config repo.packagist false 就能禁用 Packagist,其实这只会禁用默认仓库别名,真正生效的是 composer config repositories.packagist false —— 注意 repositories 是复数,且 packagist 是子键名。