Skip to content

➖ RemoveMultiple

批量移除多个包依赖,等价于 composer remove [--dev] pkg1 pkg2 ...

何时使用

  • 🧹 一次清理多个不再使用的依赖,避免多次执行 composer remove 触发重复解析。
  • ♻️ 重构时批量移除一组相关包。
  • ⚡ 提升批量操作效率(单次解析、单次更新锁文件)。

签名

go
func (c *Composer) RemoveMultiple(packages []string, dev bool) error

参数

参数类型说明
packages[]string要移除的包名列表
devbooltrue 从开发依赖(require-dev)中移除

返回值

类型说明
错误error移除包过程中发生错误时返回

示例

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)
    }

    // 批量移除生产依赖
    if err := comp.RemoveMultiple(
        []string{"symfony/console", "symfony/process"}, false,
    ); err != nil {
        log.Fatalf("批量移除生产依赖失败: %v", err)
    }

    // 批量移除开发依赖
    if err := comp.RemoveMultiple(
        []string{"phpunit/phpunit", "squizlabs/php_codesniffer"}, true,
    ); err != nil {
        log.Fatalf("批量移除开发依赖失败: %v", err)
    }
}

进阶

单个移除

只需移除一个包用 Remove,需要附加选项用 RemoveWithOptions

批量添加

对应的批量添加用 RequireMultiple(接收 map[string]string 以带版本)。

健康检查式批量

health_check.go 提供了 BatchRemove(packages, dev, continueOnError),返回 *BatchRemoveResult,可在部分失败时继续并汇总结果,适合需要容错的批量场景。

🔍 相关方法

基于 MIT 许可证发布