📋 GetInstalledPackageNames
获取所有已安装包的名称列表,等价于执行 composer show 并解析输出提取包名。
何时使用
当你只需要包名列表而不需要完整包信息时使用。它比获取完整输出更高效,适合做包存在性批量检查、依赖清单生成等场景。
签名
go
func (c *Composer) GetInstalledPackageNames() ([]string, error)参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | []string | 已安装包名列表(含直接与间接依赖) |
| 第二返回值 | error | 执行 composer show 失败时返回 |
示例
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("初始化失败: %v", err)
}
packages, err := comp.GetInstalledPackageNames()
if err != nil {
log.Fatalf("获取包列表失败: %v", err)
}
fmt.Printf("共安装 %d 个包:\n", len(packages))
for _, name := range packages {
fmt.Println(" -", name)
}
}进阶
- 只要直接依赖的包名使用 GetDirectDependencyNames。
- 解析任意
composer show文本输出使用ParsePackageList(output)工具函数。 - 想拿到包的版本号使用 GetRequireWithVersion。