➖ Remove
从项目中移除指定的依赖包,等价于 composer remove [--dev] package/name。
何时使用
- 🧹 清理不再使用的依赖,减小
composer.json与锁文件体积。 - ♻️ 配合
RequirePackage实现「换版本」:先移除再加。 - 🧪 配合
RemoveDryRun先预演移除影响。
签名
go
func (c *Composer) Remove(packageName string, dev bool) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | 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.Remove("symfony/console", false); err != nil {
log.Fatalf("移除生产依赖失败: %v", err)
}
// 移除开发依赖
if err := comp.Remove("phpunit/phpunit", true); err != nil {
log.Fatalf("移除开发依赖失败: %v", err)
}
}进阶
RemoveWithOptions
需要附加 --no-update、--no-progress 等标志时使用:
go
func (c *Composer) RemoveWithOptions(packageName string, options map[string]string) erroroptions 中 dev 也可用 "dev": "" 表达。
批量移除
一次移除多个包用 RemoveMultiple,避免多次执行 composer remove。
🔍 相关方法
RequirePackage:添加依赖。RemoveDryRun:干运行预演移除结果。