composer config --unset 可移除项目或全局配置中的指定键,需明确作用域(加--global为全局),键名大小写敏感且支持点号嵌套路径,移除后自动重写JSON文件。

使用 composer config --unset 可以移除 Composer 配置文件(composer.json 或全局 config.json)中已设置的配置项。
确认配置项所在作用域
Composer 配置分项目级(当前目录 composer.json)和全局级(用户主目录下的 composer/config.json)。移除前需明确目标配置属于哪一层:
- 不加
--global:默认修改当前项目的composer.json - 加上
--global:修改全局配置(如镜像源、认证凭据等)
正确使用 --unset 移除配置
--unset 后直接跟配置键名(支持点号分隔的嵌套路径),例如:
- 移除项目中的自定义仓库:
composer config --unset repositories.my-packagist - 移除全局镜像源:
composer config --global --unset repos.packagist.org.url - 移除全局 HTTP 认证:
composer config --global --unset http-basic.repo.example.com
注意:键名必须完全匹配,大小写敏感;移除后 Composer 会自动重写对应 JSON 文件,删除该字段及其子结构。
验证是否删除成功
执行移除后建议立即检查:
- 查看项目配置:
composer config --list(仅当前项目) - 查看全局配置:
composer config --global --list - 或直接打开对应 JSON 文件人工核对
若提示 Key "xxx" does not exist,说明该配置原本就不存在,或已被成功清除。
常见误操作提醒
以下情况不会触发错误但可能不符合预期:
- 对空值字段执行
--unset仍会成功(JSON 中字段彻底消失) - 误删父级键(如
--unset repositories)会导致整个仓库列表被清空 - 未加
--global却想删全局配置,实际操作的是项目配置,容易混淆










