Skip to content

➖ Remove

从项目中移除指定的依赖包,等价于 composer remove [--dev] package/name

何时使用

  • 🧹 清理不再使用的依赖,减小 composer.json 与锁文件体积。
  • ♻️ 配合 RequirePackage 实现「换版本」:先移除再加。
  • 🧪 配合 RemoveDryRun 先预演移除影响。

签名

go
func (c *Composer) Remove(packageName string, dev bool) error

参数

参数类型说明
packageNamestring要移除的包名
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.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) error

optionsdev 也可用 "dev": "" 表达。

批量移除

一次移除多个包用 RemoveMultiple,避免多次执行 composer remove

🔍 相关方法

基于 MIT 许可证发布