Bun 實作了語意化版本控制 API,可用於比較版本,並判斷版本是否與另一個版本範圍相容。這些版本和範圍的設計旨在與 npm 客戶端使用的 node-semver
相容。
它比 node-semver
快約 20 倍。
目前,此 API 提供了兩個函式
Bun.semver.satisfies(版本: 字串, 範圍: 字串): 布林值
如果 版本
符合 範圍
,則返回 true
,否則返回 false
。
範例
import { semver } from "bun";
semver.satisfies("1.0.0", "^1.0.0"); // true
semver.satisfies("1.0.0", "^1.0.1"); // false
semver.satisfies("1.0.0", "~1.0.0"); // true
semver.satisfies("1.0.0", "~1.0.1"); // false
semver.satisfies("1.0.0", "1.0.0"); // true
semver.satisfies("1.0.0", "1.0.1"); // false
semver.satisfies("1.0.1", "1.0.0"); // false
semver.satisfies("1.0.0", "1.0.x"); // true
semver.satisfies("1.0.0", "1.x.x"); // true
semver.satisfies("1.0.0", "x.x.x"); // true
semver.satisfies("1.0.0", "1.0.0 - 2.0.0"); // true
semver.satisfies("1.0.0", "1.0.0 - 1.0.1"); // true
如果 範圍
無效,則返回 false。如果 版本
無效,則返回 false。
Bun.semver.order(versionA: 字串, versionB: 字串): 0 | 1 | -1
如果 versionA
和 versionB
相等,則返回 0
;如果 versionA
大於 versionB
,則返回 1
;如果 versionA
小於 versionB
,則返回 -1
。
範例
import { semver } from "bun";
semver.order("1.0.0", "1.0.0"); // 0
semver.order("1.0.0", "1.0.1"); // -1
semver.order("1.0.1", "1.0.0"); // 1
const unsorted = ["1.0.0", "1.0.1", "1.0.0-alpha", "1.0.0-beta", "1.0.0-rc"];
unsorted.sort(semver.order); // ["1.0.0-alpha", "1.0.0-beta", "1.0.0-rc", "1.0.0", "1.0.1"]
console.log(unsorted);
如果您需要其他 semver 函式,請隨時提出 issue 或 pull request。