Skip to content

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 预算规则

字段默认值说明
namebudget-<序号>稳定诊断名称
limit必填最大字节数,必须为大于或等于 0 的安全整数
scope"file"file 逐文件限制;total 计算匹配文件总和
mode"raw"raw / gzip / brotli
filter排除 .map / .gz / .br正则或 (fileName, type) => boolean
requireMatchfalse没有匹配产物时失败,防止改名后预算静默失效

onExceed 默认 errorwarn 适合临时观察,不适合作为 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] };

输入

输入值输入值类型必填/默认值输入值说明
optionsBundleBudgetPluginOptions预算规则及超限处理方式。

返回

返回值返回值类型返回值说明
pluginPlugin可直接加入 Vite plugins 的构建体积预算插件。