Skip to content

🔒 LockPackageVersion

将指定包锁定为精确版本。等价于以 ExactVersion 约束调用 UpdatePackageVersion,会通过 require 命令把版本写回 composer.json

何时使用

当需要保证某依赖在任何环境都安装同一版本(如发布前的可重复构建)时使用。锁定后会得到形如 1.2.3 的精确约束,而非 ^1.2.3

签名

go
func (c *Composer) LockPackageVersion(packageName string, version string) error

参数

参数类型说明
packageNamestring包名,例如 symfony/console
versionstring要锁定的精确版本,例如 5.4.0

返回值

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

示例

go
package main

import (
	"fmt"
	"log"

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

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

	if err := comp.LockPackageVersion("symfony/console", "5.4.0"); err != nil {
		log.Fatalf("锁定版本失败: %v", err)
	}
	fmt.Println("symfony/console 已锁定到 5.4.0")
}

进阶

基于 MIT 许可证发布