Skip to content

🗑️ RemoveRequire

composer.json 移除一个依赖包,根据 isDev 决定从 requirerequire-dev 段删除。

何时使用

需要以编程方式清理项目依赖声明时使用。与 AddRequire 对称,只修改 composer.json 文件本身,不触发实际卸载,适合维护配置文件的脚本。

签名

go
func (c *Composer) RemoveRequire(packageName string, isDev bool) error

参数

参数类型说明
packageNamestring要移除的包名
isDevbooltruerequire-dev 移除,falserequire 移除

返回值

  • error:读取或写入 composer.json 失败时返回错误。

示例

go
package main

import (
	"log"

	"github.com/scagogogo/composer-skills/pkg/composer"
)

func main() {
	comp, err := composer.New(composer.DefaultOptions())
	if err != nil {
		log.Fatal(err)
	}

	// 移除生产依赖
	if err := comp.RemoveRequire("symfony/console", false); err != nil {
		log.Fatal(err)
	}

	// 移除开发依赖
	if err := comp.RemoveRequire("phpunit/phpunit", true); err != nil {
		log.Fatal(err)
	}
}

进阶

  • 🔄 本方法内部流程:ReadComposerJSONdelete(map, key)WriteComposerJSON
  • ⚠️ 当对应 map 为 nil 或包不存在时,方法是安全无操作的,不会报错。
  • 🚀 如需真正从 vendor 卸载,改用 Remove(执行 composer remove 命令)。批量卸载可用 RemoveMultiple
  • ➕ 对应的添加方法见 AddRequire

基于 MIT 许可证发布