🧮 FormatVersionConstraint
根据约束类型把一个基础版本字符串格式化为 Composer 可识别的版本约束。这是一个纯函数,不执行任何 Composer 命令。
何时使用
当需要在前端展示、日志记录或动态拼装 require 参数时,用它生成标准约束字符串。也可用于在调用 UpdatePackageVersion 前预览最终写入的约束。
签名
go
func FormatVersionConstraint(version string, constraintType VersionConstraint) string参数
| 参数 | 类型 | 说明 |
|---|---|---|
version | string | 基础版本,例如 1.2 或 1.2.3 |
constraintType | VersionConstraint | 约束类型枚举 |
约束类型取值:
| 常量 | 输出示例 |
|---|---|
ExactVersion | 1.2.3 |
CaretVersion | ^1.2.3 |
TildeVersion | ~1.2.3 |
WildcardVersion | 1.2.* |
RangeVersion | >=1.2.0 <2.0.0 |
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 唯一返回值 | string | 格式化后的版本约束字符串 |
示例
go
package main
import (
"fmt"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
fmt.Println(composer.FormatVersionConstraint("1.2.3", composer.ExactVersion)) // 1.2.3
fmt.Println(composer.FormatVersionConstraint("1.2.3", composer.CaretVersion)) // ^1.2.3
fmt.Println(composer.FormatVersionConstraint("1.2.3", composer.TildeVersion)) // ~1.2.3
fmt.Println(composer.FormatVersionConstraint("1.2", composer.WildcardVersion)) // 1.2.*
fmt.Println(composer.FormatVersionConstraint("1.2", composer.RangeVersion)) // >=1.2.0 <2.0.0
}进阶
- 该函数被 UpdatePackageVersion 内部调用。
- 锁定精确版本可改用快捷方法 LockPackageVersion。
RangeVersion会自动递增主版本号作为上界,复杂场景请自行拼装约束后传给 RequirePackage。