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

    函数 validateUploadTotalSize

    • 校验一组构建产物的总大小是否超过给定上限。

      参数

      • items: UploadSizeItem[]

        要累计的条目。函数按数组顺序读取每项 size,经 Number(...) 转换后仅 累加有限且大于 0 的值;不修改、过滤或排序输入数组,也不读取 relativePath。

      • options: ValidateUploadTotalSizeOptions = {}

        可选 byte 上限;默认 104857600 bytes(100 MiB)。自定义上限不会改变 固定错误文案。

      返回 "构建产物总大小超过 100MB,请删除未引用资源或压缩图片后重新 deploy" | undefined

      总和严格大于上限时返回唯一固定字符串 构建产物总大小超过 100MB,请删除未引用资源或压缩图片后重新 deploy;总和小于或等于 上限时返回 undefined。函数不会因超限抛异常,调用方决定是否把返回文本转成 Error。

      计算等价于把每项规范成 Number.isFinite(Number(size)) && Number(size) > 0 ? Number(size) : 0 后求和,不取整、不去重,也不设置单文件上限。因此一个文件可以占满全部预算,多个同路径 条目会重复计数,正小数会按 JavaScript number 原值加入;总和恰等 limitBytes 时通过, 多 1 byte 才返回错误。

      在声明的 TypeScript 输入契约内,该函数以返回值报告预算结果,不为非有限/非正 size 抛错。 固定错误文本不包含首个文件、实际总量或自定义上限,即使测试/集成传了其他 limitBytes, 文案仍写 100MB 和 重新 deploy。hb-sdk build 的调用方会把末尾提示改成 重新 build。

      该函数只校验一个未分组列表的总量,不读取文件系统,不执行 stat,也不校验路径、安全性、 文件数量、重复项、单文件大小或内容。调用方应先用 shouldUploadDistFile 选择真正 上传的文件,并完成 node_modules、路径规范/唯一性/长度等校验;被提前过滤的 Manifest、 .DS_Store 和 source map 才不会计入总量。

      Web 与 Companion 需要独立预算时使用 validateMiniappUploadSizeBudgets():它按 relativePath 的 companions/ 前缀分组,Web 组复用本函数的默认 100 MiB 规则,Companion 组使用独立 500 MiB 上限。直接调用本函数不会识别或分开这些路径。

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

      const atLimit = validateUploadTotalSize(
      [
      { relativePath: 'assets/app.js', size: 1_024 },
      { relativePath: 'assets/ignored-negative.js', size: -1 },
      { relativePath: 'assets/ignored-nan.js', size: Number.NaN },
      ],
      { limitBytes: 1_024 },
      )
      console.log(atLimit) // undefined,恰等上限

      const overLimit = validateUploadTotalSize(
      [{ relativePath: 'assets/app.js', size: 1_025 }],
      { limitBytes: 1_024 },
      )
      if (overLimit) throw new Error(overLimit)

      0.4.7