Composer 官方从未提供 bump 命令,该命令属于第三方插件(如 vinkla/composer-bump);升级依赖应使用 require 或 update,version 字段更新需依赖插件且满足 Git 和 SemVer 前提。

composer bump 不存在——Composer 官方从未在任何版本(包括 Composer 2.x 或 3.x)中内置 bump 命令。你看到的“Composer 2 新增 bump 命令”是常见误解,源于混淆了第三方插件与原生命令。
为什么 composer bump 总报错:Command "bump" is not defined
这是最直接的信号:Composer 核心不认这个命令。它不是被弃用,而是压根没实现过。composer list 输出里永远找不到 bump,官方文档也从无记载。
- Composer 的设计哲学是「显式优于隐式」——自动改
composer.json中的版本约束或项目version字段,可能绕过兼容性判断,违背其依赖治理原则 - 所谓“Composer 2 新命令”,实际是某些博客把
vinkla/composer-bump或symplify/composer-bump插件的用法,错误归因到 Composer 本身 -
reinstall同样不是官方命令;composer install --no-cache或rm -rf vendor && composer install才是等效操作
想升级自己项目的 version 字段?用插件,别硬改
如果你要发版,把 "version": "1.2.3" 改成 "version": "1.3.0" 并打 tag,得靠插件,且必须满足前提:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 项目根目录有 Git 仓库,且当前工作区干净(无未提交变更)
-
composer.json顶层存在version字段,格式为标准 SemVer(如1.2.3,不能是dev-main或空) - 推荐安装
vinkla/composer-bump(本地开发环境):composer require --dev vinkla/composer-bump
- 然后运行:
composer bump minor
→ 自动更新字段、git add composer.json、提交、打v1.3.0tag - 加
--no-commit --no-tag可跳过 Git 操作,适合 CI 流水线分步控制
想升级依赖包的版本约束?别找 bump,用 require 或 update
这才是日常高频场景:把 "monolog/monolog": "^2.8" 升到 ^3.0,或把整个项目依赖拉到最新兼容版。
- 明确升某包约束:用
composer require monolog/monolog:^3.0—— 它会重写composer.json并执行安装;加--no-update则只改约束 - 批量升所有包到当前约束允许的最新版:用
composer update(生产环境慎用,建议加--dry-run预览) - 先看哪些能升:
composer outdated列出所有过时包,composer outdated -D标出主版本跃迁,避免盲升 - 冲突时别硬顶:若
require报conflict,说明新约束和现有依赖不兼容,得手动调约束或查 BC break
真正难的不是敲哪条命令,而是判断「该不该升」「升到哪一版」——版本号背后是 API 删除、配置变更、PHP 版本要求提升。工具只能改文本,不能替你读 CHANGELOG、跑测试、评估业务影响。

















