🔒 UpdateWithLock
仅刷新 composer.lock 文件的哈希值,不实际升级任何包的版本。
何时使用
当你手动编辑了 composer.json(例如调整了 require 之外的描述字段、脚本等),导致 composer.lock 的 content-hash 与 json 不同步、Composer 报警告时使用。相当于执行 composer update --lock,可在不改变包版本的情况下修复 lock 文件。
签名
go
func (c *Composer) UpdateWithLock() error参数
该方法不接受任何参数。
返回值
error:更新 lock 文件过程中发生错误时返回相应错误信息,成功时为 nil。
示例
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)
}
// 修改了 composer.json 的非依赖字段后,重新同步 lock 哈希
if err := comp.UpdateWithLock(); err != nil {
log.Fatalf("更新 lock 文件失败: %v", err)
}
fmt.Println("composer.lock 哈希已同步")
}进阶
- 此方法不会下载或升级任何包,比完整
update更轻量、更安全。 - 真正升级依赖版本见
Update或UpdateWithOptions。 - 模拟升级见
UpdateDryRun。