🛠️ UpdateWithOptions
使用自定义选项映射更新项目依赖,是 Update 的灵活变体。
何时使用
当 Update 的 noDev 参数不足以满足需求,需要组合 --prefer-dist、--with-dependencies、--no-progress、--dry-run 等多个 Composer 原生选项时使用。
签名
go
func (c *Composer) UpdateWithOptions(packages []string, options map[string]string) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
packages | []string | 要更新的包名列表;传空切片表示更新所有包 |
options | map[string]string | 更新选项映射;键为选项名(不带 --),值为选项值,布尔型选项传空字符串 |
返回值
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)
}
options := map[string]string{
"no-dev": "",
"prefer-dist": "",
"with-dependencies": "",
"no-progress": "",
}
if err := comp.UpdateWithOptions([]string{"symfony/console"}, options); err != nil {
log.Fatalf("更新依赖失败: %v", err)
}
fmt.Println("依赖更新完成")
}进阶
- 选项映射会按确定顺序展开,先选项后包名,与 Composer CLI 语义一致。
- 仅需
--no-dev的简单场景用Update更直观。 - 单一选项的快捷封装见
UpdateWithDependencies、UpdateWithLock等。 - 模拟更新见
UpdateDryRun。