Composer config 命令用于管理本地或全局配置,支持查看(--list)、设置(key value)、删除(--unset)及安全写入认证信息(--auth),优先级为本地 composer.json > 全局 config.json > 系统级,敏感信息应存 auth.json。

Composer 的 config 命令用于管理本地项目或全局的配置项,核心作用是设置、查看、删除 Composer 的行为参数,比如仓库地址、认证信息、缓存路径、自动加载规则等。本地配置优先级高于全局,两者都写在 composer.json(本地)或 auth.json / config.json(全局)中。
查看当前配置(本地 or 全局)
不加参数时默认显示当前项目的本地配置;加 --global 查看全局配置:
-
composer config --list:列出当前作用域(本地)所有已设置的配置项 -
composer config --global --list:列出全局配置(如镜像源、GitHub token、cache-dir 等) -
composer config --list --format=json:以 JSON 格式输出,方便脚本解析
设置常用配置项(含敏感信息安全写法)
用 composer config key value 设置,推荐加 --unset 或 --no-interaction 避免交互提示。敏感值(如 token)建议用 --auth 参数写入 auth.json,而非明文进 composer.json:
-
composer config repo.packagist composer https://packagist.phpcomposer.com:设置 Packagist 镜像(国内常用) -
composer config --global github-oauth.github.com your_token_here:全局设置 GitHub 认证 token(自动存入~/.composer/auth.json) -
composer config --global cache-dir ~/.composer/cache:自定义全局缓存目录 -
composer config autoloader-suffix MyProject:为自动加载类名加后缀,避免命名冲突
删除配置项(谨慎操作)
误配或迁移时需清理旧配置,--unset 是安全删除方式:
-
composer config --unset repo.packagist:还原 Packagist 源为默认官方地址 -
composer config --global --unset github-oauth.github.com:移除全局 GitHub token -
composer config --unset bin-dir:删掉自定义二进制命令目录,恢复默认vendor/bin
配置文件位置与生效逻辑
Composer 按优先级依次读取:项目根目录 composer.json → 当前用户全局 config.json(~/.composer/config.json)→ 系统级(/etc/composer/config.json,极少使用)。auth.json 只用于凭据,不参与行为配置:
- 本地配置写在项目
composer.json的"config"字段下,提交时注意别误传敏感信息 - 全局配置默认存在
~/.composer/config.json,--global操作即修改此文件 -
auth.json默认与config.json同目录,只存github-oauth、http-basic等认证字段,不会被提交到 Git
基本上就这些。用好 config 命令能省去手动改 JSON 的麻烦,也能让团队环境和 CI 流程更可控。不复杂但容易忽略细节,比如该用 --global 却忘了加,或者把 token 写进了项目 composer.json。










