➖ RemoveMultiple
批量移除多个包依赖,等价于 composer remove [--dev] pkg1 pkg2 ...。
何时使用
- 🧹 一次清理多个不再使用的依赖,避免多次执行
composer remove触发重复解析。 - ♻️ 重构时批量移除一组相关包。
- ⚡ 提升批量操作效率(单次解析、单次更新锁文件)。
签名
go
func (c *Composer) RemoveMultiple(packages []string, dev bool) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
packages | []string | 要移除的包名列表 |
dev | bool | true 从开发依赖(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,可在部分失败时继续并汇总结果,适合需要容错的批量场景。
🔍 相关方法
Remove:单个移除。RequireMultiple:批量添加。Reinstall:重装包。