@heybox/hb-sdk API Reference - v0.9.5
    正在准备搜索索引...

    函数 isValidVersion

    • 判断小程序版本是否符合公开 Manifest 版本规则。

      参数

      • version: string

        待判断的 package.json.version / Manifest 版本字符串;首尾空白会先被 移除,但函数不会把规范化后的字符串返回给调用方。

      返回 boolean

      trim 后满足小程序严格版本规则时返回 true,否则返回 false。对类型声明允许的 字符串输入,该函数只返回布尔值,不抛出校验错误。

      接受形式为 canonical SemVer MAJOR.MINOR.PATCH[-PRERELEASE]。trim 后的输入必须与 semver 严格解析得到的 version 完全相同,因此不完整版本(如 1.2)、v / = 前缀、范围表达式、额外段,以及 major/minor/patch 或纯数字 prerelease 标识中的前导零 都返回 false。只有首尾空白会被忽略,内部空白不会被修复。

      合法 prerelease(如 1.2.3-alpha.1、0.0.1-rc.0)可以使用。build metadata 即使符合 标准 SemVer(如 1.2.3+build.1)也被小程序发布合同显式禁止。模板占位 core 0.0.0 同样禁止,包括 0.0.0-alpha 等 prerelease;至少应提升 patch/minor/major 之一,例如 0.0.1-alpha.1。

      这是无 I/O、无状态修改的 predicate,适合表单即时判断。实际 Vite / hb-sdk build 流程会调用同规则的 package version validator:成功时返回 trim 后版本并写入 Manifest, 失败时抛出带 package.json.version 来源的错误;调用本函数为 true 不能跳过正式构建。

      resolveMiniappManifestPlatforms 处理的是 Manifest sdkVersion 对平台声明策略的 SemVer precedence,不是当前小程序的发布 version。不要用本函数替代平台解析,也不要 把项目 version 当作 sdkVersion 传入。

      import { isValidVersion } from '@heybox/hb-sdk/miniapp-publish'

      isValidVersion(' 1.2.3 ') // true
      isValidVersion('1.2.3-alpha.1') // true
      isValidVersion('0.0.1-alpha.1') // true
      isValidVersion('1.2') // false
      isValidVersion('v1.2.3') // false
      isValidVersion('1.2.3+build.1') // false
      isValidVersion('0.0.0-alpha') // false

      0.3.1