Skip to content

🧩 IsPackageDev

检查指定包是否在 composer.jsonrequire-dev 中声明,即是否为开发依赖。

何时使用

当你需要区分一个包是生产依赖还是仅开发期依赖时使用。例如决定打包发布前是否需要移除它,或在生成部署清单时排除开发依赖。它直接读取 composer.json,不执行 Composer 命令。

签名

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

参数

参数类型说明
packageNamestring要检查的包名,如 phpunit/phpunit

返回值

返回值类型说明
第一返回值bool包在 require-dev 中返回 true,否则 false
第二返回值error读取或解析 composer.json 失败时返回

示例

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)
	}

	isDev, err := comp.IsPackageDev("phpunit/phpunit")
	if err != nil {
		log.Fatalf("检查失败: %v", err)
	}
	if isDev {
		fmt.Println("phpunit/phpunit 是开发依赖 🧪")
	} else {
		fmt.Println("phpunit/phpunit 不是开发依赖 📦")
	}
}

进阶

基于 MIT 许可证发布