♻️ Reinstall
使用 Composer 2.2+ 的原生命令重新安装指定的包,等价于 composer reinstall packageName。
何时使用
- 🩹 包安装损坏(文件缺失或被改动)后恢复。
- 🔧 切换
--prefer-source/--prefer-dist安装方式时重装。 - 🧪 修复因缓存或中断导致的安装异常。
签名
go
func (c *Composer) Reinstall(packageName string) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | string | 要重新安装的包名 |
返回值
| 值 | 类型 | 说明 |
|---|---|---|
| 错误 | 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.Reinstall("symfony/console"); err != nil {
log.Fatalf("重新安装包失败: %v", err)
}
}进阶
ReinstallWithOptions
需要附加 --prefer-source、--prefer-dist 等标志时使用:
go
func (c *Composer) ReinstallWithOptions(packageName string, options map[string]string) errorgo
options := map[string]string{"prefer-source": ""}
err := comp.ReinstallWithOptions("symfony/console", options)批量重装
一次重装多个包用 ReinstallMultiple(packages []string),等价于 composer reinstall pkg1 pkg2 ...。
版本要求
reinstall 是 Composer 2.2+ 引入的原生命令。对于旧版本 Composer,请改用 Remove + RequirePackage 的组合实现重装。
🔍 相关方法
Remove/RequirePackage:旧版 Composer 的重装替代方案。RemoveMultiple:批量移除。