版本别名允许将开发分支映射到特定版本号,如在composer.json中设置"extra.branch-alias": {"dev-main": "1.0.x-dev"},使其他包可通过^1.0依赖dev-main分支的最新代码,便于开发协同。

在 Composer 中,你不能直接为同一个包的不同版本设置“别名”,但可以通过 版本别名(version alias) 的方式,让某个开发版本(如 dev 分支)对外表现为一个特定的版本号。这在依赖管理中非常有用,尤其是当你想让其他包把你的 dev-main 当作 1.0.0 来引用时。
什么是版本别名?
版本别名允许你将一个开发分支(如 dev-main 或 dev-develop)映射到一个具体的版本号(如 1.0.x-dev)。这样其他包就可以依赖 ^1.0 并使用你的开发版本。
如何设置别名?
在你要设置别名的包的 composer.json 文件中,使用 extra.branch-alias 字段:
{
"name": "your-vendor/your-package",
"extra": {
"branch-alias": {
"dev-main": "1.0.x-dev",
"dev-develop": "2.0.x-dev"
}
}
}
上面的配置表示:
- 当你运行
composer require your-vendor/your-package:1.0.*时,Composer 可能会安装dev-main分支,并将其视为1.0.x-dev版本。 -
dev-develop分支则被视为2.0.x-dev,可用于测试未来版本。
使用场景示例
假设你在开发一个库,主分支是 main,你希望别人在测试时能用 ^1.0 来拉取最新的开发版本:
- 发布稳定版
1.0.0后,继续在main上开发新功能。 - 设置
"dev-main": "1.0.x-dev",这样别人可以写依赖:"your-vendor/your-package": "^1.0",并获取最新开发代码。 - 当你开始开发
2.0功能时,可创建develop分支并设别名"dev-develop": "2.0.x-dev"。
注意事项
版本别名只影响开发分支,不影响正式版本标签(如 v1.0.0)。
- 别名不会创建实际版本,只是在解析依赖时起作用。
- 必须在被依赖的包的
composer.json中设置,而不是在使用它的项目里。 - 别名通常以
x-dev结尾,表明是开发版本。 - 确保别名逻辑清晰,避免混淆,比如不要把
dev-main映射到3.0.x-dev而实际还在做 1.0 的功能。
branch-alias,你可以更灵活地管理开发中的版本依赖。










