🗑️ RemoveRequire
从 composer.json 移除一个依赖包,根据 isDev 决定从 require 或 require-dev 段删除。
何时使用
需要以编程方式清理项目依赖声明时使用。与 AddRequire 对称,只修改 composer.json 文件本身,不触发实际卸载,适合维护配置文件的脚本。
签名
go
func (c *Composer) RemoveRequire(packageName string, isDev bool) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | string | 要移除的包名 |
isDev | bool | true 从 require-dev 移除,false 从 require 移除 |
返回值
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)
}
}进阶
- 🔄 本方法内部流程:
ReadComposerJSON→delete(map, key)→WriteComposerJSON。 - ⚠️ 当对应 map 为
nil或包不存在时,方法是安全无操作的,不会报错。 - 🚀 如需真正从
vendor卸载,改用Remove(执行composer remove命令)。批量卸载可用RemoveMultiple。 - ➕ 对应的添加方法见
AddRequire。