bundleBudget(options)
对最终产物执行可让 CI 失败的体积预算,补足 Vite 仅提供 chunk 告警、不能约束 CSS/总量/压缩体积的边界。
ts
bundleBudget({
budgets: [
{ name: "单个入口 JS", filter: /\.js$/, limit: 250 * 1024, requireMatch: true },
{ name: "CSS 总量", filter: /\.css$/, limit: 50 * 1024, mode: "gzip", scope: "total" },
],
onExceed: "error",
});BundleBudgetRule 预算规则
| 字段 | 默认值 | 说明 |
|---|---|---|
name | budget-<序号> | 稳定诊断名称 |
limit | 必填 | 最大字节数,必须为大于或等于 0 的安全整数 |
scope | "file" | file 逐文件限制;total 计算匹配文件总和 |
mode | "raw" | raw / gzip / brotli |
filter | 排除 .map / .gz / .br | 正则或 (fileName, type) => boolean |
requireMatch | false | 没有匹配产物时失败,防止改名后预算静默失效 |
onExceed 默认 error;warn 适合临时观察,不适合作为 CI 质量门禁。gzip/Brotli 模式使用 Node.js 原生编码器实际压缩,不使用估算值。
bundleBudget 体积预算
为 Vite 构建增加可执行的产物体积预算。
与 Vite 自带的 chunk 警告不同,本插件可检查任意产物、合计多个文件、使用真实压缩 体积,并在 CI 中让超限构建失败。插件只在生产构建运行。
签名
ts
export function bundleBudget(options: BundleBudgetPluginOptions): Plugin;示例
ts
import { bundleBudget } from "fast-vite-plugins";
const plugin = bundleBudget({ budgets: [{ name: "entry", filter: /\.js$/, limit: 250 * 1024 }] });
export default { plugins: [plugin] };输入
| 输入值 | 输入值类型 | 必填/默认值 | 输入值说明 |
|---|---|---|---|
options | BundleBudgetPluginOptions | 是 | 预算规则及超限处理方式。 |
返回
| 返回值 | 返回值类型 | 返回值说明 |
|---|---|---|
plugin | Plugin | 可直接加入 Vite plugins 的构建体积预算插件。 |
