Vite 中静态资源内联阈值由 build.assetsInlineLimit 控制,默认 4096 字节(4KB);小于等于该值的资源在生产构建时自动转为 base64 内联,超限则单独输出;设为 0 强制全部内联(不推荐),库模式下该配置被忽略;仅影响生产构建,开发环境无效。

在 Vite 构建中,静态资源的内联阈值由 build.assetsInlineLimit 控制,默认是 4096 字节(4KB)。小于等于该值的图片、字体、SVG 等资源,在生产构建时会自动转为 base64 字符串并内联进代码;超过则单独输出为文件。
如何设置内联阈值
在 vite.config.js 或 vite.config.ts 的 build 选项中配置:
- 设为
8 * 1024表示 8KB,适合更多小图标或 logo 内联 - 设为
0会强制所有资源内联(不推荐,易导致 JS 包体积激增) - 若项目启用了库模式(
build.lib: true),此配置会被忽略,所有资源均内联
注意:仅影响生产构建
assetsInlineLimit 对开发环境无效。Vite 在 dev 模式下使用独立的资源服务机制,不会做 base64 转换——无论你设成 4KB 还是 16KB,热更新时看到的始终是原始文件 URL。
验证是否生效
执行 vite build 后检查 dist 目录:
立即学习“Java免费学习笔记(深入)”;
- 小于阈值的图片不会出现在
assets/下,而是以data:image/png;base64,...形式出现在 JS 或 CSS 中 - 大于阈值的图片会生成带哈希名的独立文件,如
assets/logo.a1b2c3d4.png
常见搭配建议
配合其他构建优化更有效:
- 用
public/存放 favicon、manifest.json 等必须根路径访问的资源(不走内联逻辑) - 对大图或视频等资源,优先考虑懒加载 +
import.meta.url动态引入,避免误入内联范围 - 结合
rollupOptions.output.manualChunks拆分 node_modules,防止因内联阈值调高而掩盖 chunk 过大的问题


















