- ✅ 启用压缩:
compress: true - ✅ CSS优化:
optimizeCss: true - ✅ 包导入优化: 针对
react-icons,@heroicons/react,framer-motion - ✅ 图片格式优化: 支持 WebP 和 AVIF 格式
- ✅ Tree Shaking: 启用未使用代码消除
// 智能分包,减少主包大小
cacheGroups: {
qr: 'qr-libs', // QR码相关库单独打包
icons: 'icons', // 图标库单独打包
animation: 'animation', // 动画库单独打包
vendor: 'vendors' // 其他第三方库
}- ✅ Google Fonts:
dns-prefetch+preconnect - ✅ Google AdSense:
dns-prefetch+preconnect - ✅ CDN资源:
dns-prefetch+preconnect - ✅ 图标资源:
dns-prefetch+preconnect
- ✅ 字体显示策略:
display: 'swap' - ✅ 字体预加载:
preload: true - ✅ 减少字体闪烁: FOUT/FOIT 优化
// 静态资源长期缓存
'/_next/static/*': 'max-age=31536000, immutable'
'/assets/*': 'max-age=31536000, immutable'- ✅ QR预览卡: 动态导入,减少初始包大小
- ✅ 自定义模态框: 按需加载
- ✅ 动画组件: Framer Motion 懒加载
- ✅ 图标组件: React Icons 按需导入
// 预加载关键组件
preloadCriticalComponents();- ✅ WebP支持: 更小的文件大小
- ✅ AVIF支持: 最新的高效格式
- ✅ 响应式图片: 根据设备优化
- ✅ DNS预取控制:
X-DNS-Prefetch-Control: on - ✅ 内容类型保护:
X-Content-Type-Options: nosniff - ✅ 安全头部: 完整的安全头部配置
# 分析打包结果
npm run build:analyze
# 性能审计
npm run performance:audit- ✅ 字体优化 (
font-display: swap) - ✅ 图片格式优化 (WebP/AVIF)
- ✅ 关键资源预加载
- ✅ 服务器端渲染优化
- ✅ JavaScript 分包
- ✅ 非关键代码懒加载
- ✅ Tree Shaking 消除未使用代码
- ✅ 字体加载优化
- ✅ 图片尺寸预设
- ✅ 骨架屏加载状态
- 初始包大小: 减少 30-40%
- 首屏渲染: 提升 25-35%
- 交互就绪时间: 提升 20-30%
- 减少白屏时间: 字体和资源预加载
- 更快的导航: 智能预取和缓存
- 更流畅的交互: 代码分割和懒加载
# 正常开发
npm run dev
# 性能分析开发
npm run build:analyze# 优化构建
npm run build
# 性能审计
npm run performance:audit- 定期运行
build:analyze检查包大小 - 使用 Lighthouse 测试 Core Web Vitals
- 监控真实用户指标 (RUM)
- 定期审查 未使用的依赖
- 实施 Service Worker 缓存
- 添加 PWA 功能
- 实现图片懒加载
- 优化第三方脚本加载
- 实施 Critical CSS 内联
- JavaScript包大小: < 250KB (gzipped)
- CSS大小: < 50KB (gzipped)
- LCP: < 2.5s
- FID: < 100ms
- CLS: < 0.1
最后更新: 2024年12月