⚡ Update
将项目的依赖更新到 composer.json 约束允许的最新版本,可指定特定包或更新全部依赖。
何时使用
当你想获取依赖的新版本、修复 bug 或升级包时使用。注意 update 会改写 composer.lock,不同于按 lock 还原的 install。相当于执行 composer update [--no-dev] [packages...]。
签名
go
func (c *Composer) Update(packages []string, noDev bool) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
packages | []string | 要更新的包名列表;传空切片 []string{} 表示更新所有包 |
noDev | bool | 为 true 时不更新开发依赖 |
返回值
error:更新过程中发生错误时返回相应错误信息,成功时为 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)
}
// 更新全部依赖(含开发依赖)
if err := comp.Update([]string{}, false); err != nil {
log.Fatalf("更新依赖失败: %v", err)
}
// 只更新指定的包
if err := comp.Update([]string{"symfony/console", "symfony/process"}, false); err != nil {
log.Fatalf("更新指定包失败: %v", err)
}
fmt.Println("依赖更新完成")
}进阶
- 需要传入
--prefer-dist、--with-dependencies等选项时使用UpdateWithOptions。 - 只想模拟更新、查看将要发生的变化时使用
UpdateDryRun。 - 连带更新依赖包见
UpdateWithDependencies。 - 仅刷新 lock 哈希而不升级包版本见
UpdateWithLock。