1. 安装插件
npm install vite-plugin-compression -D
2. 在 vite.config.ts
中配置
TypeScript
import { defineConfig } from 'vite'
import compression from 'vite-plugin-compression'
export default defineConfig({
plugins: [
compression({
algorithm: 'gzip',
ext: '.gz',
threshold: 1024, // 小于 1KB 的文件不压缩
})
]
})
一、Nginx(Linux 最常见)
# 1. 确认已开启 gzip 静态模块(绝大多数发行版默认已编译)
nginx -V 2>&1 | grep -o with-http_gzip_static_module
# 如果输出中有 with-http_gzip_static_module 就说明支持
# 2. nginx.conf 或站点配置
server {
listen 80;
server_name your-domain.com;
root /var/www/dist; # 指向 vite build 出来的 dist 目录
# 优先使用现成的 .gz
gzip_static on; # 关键!
# 动态压缩作为兜底(可关掉,因为我们已经有 .gz)
gzip off;
# 其余静态资源
location / {
try_files $uri $uri/ /index.html;
}
# 静态文件缓存期
location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
# 3. 重载配置
sudo nginx -t && sudo systemctl reload nginx
浏览器访问后,在 DevTools → Network → 某 xxx.js
→ Response Headers 里能看到
Content-Encoding: gzip
说明 .gz
文件被直接命中。