全局配置作者信息必须用 composer config -g,而非 composer init;它直接修改全局 config.json,使后续 composer init 自动生成含 name 和 email 的 composer.json。
全局配置作者信息必须用 composer config,不是 composer init
很多人误以为 composer init 能设全局作者,其实它只在当前项目生成 composer.json,且不读取或写入全局配置。真正生效的方式是直接操作 Composer 的全局配置文件(~/.composer/config.json 或 Windows 下 %APPDATA%\Composer\config.json),而 composer config 命令正是为此设计的。
执行以下命令即可一次性写入全局作者名和邮箱:
composer config -g name "Your Name" composer config -g email "[email protected]"
-
-g表示 global,缺了就只影响当前目录 - 两项必须分开执行,
composer config -g不支持一次设多个字段 - 如果之前没初始化过全局配置,该命令会自动创建
config.json并写入 - 改完后,后续所有
composer init生成的composer.json都会自动填充这两项
为什么 composer global config init 是无效命令
这个组合根本不存在——composer global 是子命令,用于管理全局安装的包(如 composer global require laravel/installer),它后面不接受 config 或 init;而 composer config 和 composer init 是平级命令,不能嵌套。输错会报错:[InvalidArgumentException] Command "global config init" is not defined.
常见混淆点:
-
composer global require≠composer config -g:前者装包,后者设配置 -
composer init会读取全局name/email,但不会主动去“初始化”全局配置 - 没有
composer config init这种语法,也不存在交互式全局初始化流程
验证和排查配置是否生效
运行 composer config -g --list 可查看全部全局配置项,重点确认输出里包含: