如何让Vite Build仅输出Brotli压缩文件?
关于Vite生成Brotli压缩文件与原文件的疑问及配置方案
为什么Vite会同时生成.br和原文件?
这不是因为部分文件类型压缩后不兼容低版本浏览器,Vite的默认压缩行为是保留原文件,核心目的是让服务器可以根据客户端请求的Accept-Encoding头,自动判断返回压缩文件还是原文件——毕竟仍有少量老旧客户端或特殊环境不支持Brotli解码,保留原文件是为了最大程度的兼容性兜底。
如何配置让Vite仅输出Brotli压缩版本?
如果你的服务环境已经确认所有客户端都支持Brotli,可以通过修改Vite配置,删除构建后的原文件。具体步骤如下:
- 确保你使用的是
vite-plugin-compression插件(Vite官方推荐的压缩插件),未安装的话先执行安装命令:
npm install vite-plugin-compression --save-dev
- 在
vite.config.js中修改插件配置,开启deleteOriginFile选项:
import { defineConfig } from 'vite' import compression from 'vite-plugin-compression' export default defineConfig({ plugins: [ compression({ algorithm: 'brotliCompress', // 指定使用Brotli压缩算法 ext: '.br', deleteOriginFile: true // 开启后会删除原文件,仅保留.br压缩文件 }) ] })
注意:开启
deleteOriginFile前,请务必确认你的服务器已配置正确,能识别并返回.br后缀的压缩文件。比如在Nginx中,需要添加规则确保客户端请求原文件名时,服务器能返回对应的.br文件(例如请求app.js时,实际返回app.js.br)。
内容的提问来源于stack exchange,提问作者GeorgeTheFool
相关产品推荐
相关产品推荐

