✅ Validate
校验 composer.json 是否有效,相当于执行 composer validate。这是一个纯校验方法:它只返回 error,当发现问题时直接以错误形式返回,校验通过则返回 nil。
📋 签名
go
func (c *Composer) Validate() error📥 参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 无 | — | 本方法不接收任何参数 |
📤 返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 唯一返回值 | error | 校验失败时返回错误(包含 Composer 的报错信息),nil 表示 composer.json 有效 |
与 ValidateStructured / ValidateStrict 的区别
本方法签名是 error(而非 (string, error)),意味着它是一个纯校验入口:发现任何问题时直接返回错误并中止流程,不输出可供程序解析的结果文本。如果你需要拿到校验的完整输出文本以便记录日志、或在 CI 中展示详情,请改用 ValidateStructured 或 ValidateStrict;本方法更适合“通过即继续、失败即报错”的简单守卫场景。
📝 示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatalf("初始化 Composer 失败: %v", err)
}
if err := comp.Validate(); err != nil {
log.Fatalf("composer.json 校验失败: %v", err)
}
fmt.Println("composer.json 校验通过")
}🚀 进阶
- 📋 需要更严格的校验(将 warning 也视为错误):使用
ValidateComposerJson(true, false)(composer validate --strict)。 - 🔗 需要连同依赖一起校验:使用
ValidateComposerJson(false, true)(composer validate --with-dependencies)。 - 📦 需要结构化结果以便程序处理:使用 ValidateStructured。
- 🧪 在 CI/CD 流水线或提交前钩子中调用本方法,可在依赖安装之前提前拦截格式错误的
composer.json。