--unset 是唯一标准做法,它彻底移除配置项使 composer 回退到内置默认值(如 process-timeout 默认300),而非写入 null 或空值;删错会导致 require 报错、update 卡住或源失效等异常。

用 --unset 删除配置项即可恢复默认行为
Composer 没有“重置为默认值”的一键命令,--unset 是唯一标准做法。它不会写入 "key": null 或 "key": 300,而是彻底移除该字段,让 Composer 回退到内置默认值(如 process-timeout 默认 300,http-basic-timeout 默认 60)。
- 全局配置删除:运行
composer config --global --unset process-timeout - 项目级配置删除:在项目根目录下运行
composer config --unset http-basic-timeout - 镜像源配置删除(慎用):运行
composer config --global --unset repos.packagist,删后会自动 fallback 到官方源https://packagist.org,但需注意部分旧项目可能因硬编码依赖而报错
删错配置后行为异常怎么办
--unset 是不可逆操作,删完不提示、不备份、不验证。常见误删后果:
- 删了
minimum-stability:执行composer require会直接报Could not find package,因为 Composer 不知道该拉stable还是dev版本 - 删了
process-timeout:不是变回 300 秒,而是完全失去超时保护,composer update可能卡住几十分钟无响应 - 删了
repos.packagist:错误提示仍是Package not found,但实际是源没了——必须先composer config --global --list | grep repos确认是否为空
验证是否已恢复默认值
最可靠方式是读配置并观察输出:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer config process-timeout(项目级)或composer config -g http-basic-timeout(全局),若**无任何输出**,说明该字段不存在,Composer 正在使用默认值 - 有输出则表示仍被显式设置,比如
600或"600"(后者是字符串,会被忽略,等效于未设置) - 注意:默认值本身不会出现在配置文件里,所以打开
~/.composer/config.json或composer.json看不到对应字段才是正常状态
不想删配置?用环境变量临时覆盖更安全
如果只是调试或 CI 中临时绕过 timeout,优先用环境变量而非修改配置:
-
COMPOSER_PROCESS_TIMEOUT=300 composer install—— 覆盖process-timeout -
COMPOSER_HTTP_BASIC_TIMEOUT=60 composer update—— 覆盖http-basic-timeout(仅 Composer 2.2+) - 环境变量优先级高于配置文件,且退出终端即失效,不会污染长期设置
真正容易被忽略的是:删掉一个 timeout 配置后,你以为回到了“安全默认”,但实际可能触发更隐蔽的失败模式——比如 process-timeout 缺失导致子进程无限等待,而日志里连超时提示都没有。










