🧩 IsPackageDev
检查指定包是否在 composer.json 的 require-dev 中声明,即是否为开发依赖。
何时使用
当你需要区分一个包是生产依赖还是仅开发期依赖时使用。例如决定打包发布前是否需要移除它,或在生成部署清单时排除开发依赖。它直接读取 composer.json,不执行 Composer 命令。
签名
go
func (c *Composer) IsPackageDev(packageName string) (bool, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | string | 要检查的包名,如 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 不是开发依赖 📦")
}
}进阶
- 仅判断包是否安装(不区分 dev)使用 IsPackageInstalled。
- 读取完整
require-dev列表使用 ReadComposerJson。 - 获取项目开发依赖摘要使用 GetProjectDependencies。