Skip to content

🔄 UpdatePackageVersion

更新项目中对某个包的版本约束。先按约束类型格式化版本字符串,再通过 require 命令写回 composer.json

何时使用

当需要批量调整依赖版本约束(例如从 ^1.2 切换到 ~1.2 或精确锁定)时使用。它内部调用 RequirePackage,因此会触发实际的依赖解析与安装。

签名

go
func (c *Composer) UpdatePackageVersion(packageName string, version string, constraintType VersionConstraint) error

参数

参数类型说明
packageNamestring包名,例如 symfony/console
versionstring版本基础值,例如 1.2.3
constraintTypeVersionConstraint约束类型:ExactVersionCaretVersionTildeVersionRangeVersionWildcardVersion

返回值

返回值类型说明
唯一返回值error格式化或执行 require 失败时返回

示例

go
package main

import (
	"log"

	"github.com/scagogogo/composer-skills/pkg/composer"
)

func main() {
	comp, err := composer.New(composer.DefaultOptions())
	if err != nil {
		log.Fatalf("初始化失败: %v", err)
	}

	// 将 symfony/console 约束改为 ^5.4.0
	if err := comp.UpdatePackageVersion(
		"symfony/console",
		"5.4.0",
		composer.CaretVersion,
	); err != nil {
		log.Fatalf("更新版本约束失败: %v", err)
	}
}

进阶

基于 MIT 许可证发布