🔒 HasComposerLock
检查当前工作目录下是否存在 composer.lock 文件,用于判断项目是否已锁定依赖版本。
何时使用
composer.lock 记录了确切安装的依赖版本。当你需要判断项目是否已执行过 composer install、是否处于"已锁定"状态时使用。CI 流程中常据此决定是跑 install 还是 update。
签名
go
func (c *Composer) HasComposerLock() bool参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 唯一返回值 | bool | 当前工作目录下存在 composer.lock 时返回 true,否则 false |
示例
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)
}
if comp.HasComposerLock() {
fmt.Println("存在 composer.lock,依赖已锁定 ✅")
} else {
fmt.Println("缺少 composer.lock,建议执行 composer install 🔧")
}
}进阶
- 读取 lock 文件结构化内容请用 ReadComposerLock。
- 判断 vendor 目录是否已生成,配合 HasVendorDir。
- 想从 lock 中提取已废弃包列表,使用 GetAbandonedPackagesFromLock。