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 目录# 优先使用现成的 .gzgzip_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
文件被直接命中。