mcpField
R
react-vite-best-practices

react-vite-best-practices

github.com/asyrafhussin开发952.9k 次安装9 周前更新
代码仓库

关于 react-vite-best-practices

面向 React 与 Vite 应用的性能优化指南 Skill。23 条规则分为六类,涵盖构建产物、代码拆分、开发体验、资源处理、环境设置和 Bundle 分析。

主要功能

  1. 01六类共 23 条规则
  2. 02构建与 Bundle 优化
  3. 03路由和组件代码拆分
  4. 04开发与 HMR 指南
  5. 05资源和环境变量处理
  6. 06Bundle 分析

适用场景

  1. 01优化 React 与 Vite 构建
  2. 02拆分路由和大型组件
  3. 03配置资源及环境变量
  4. 04检查 Bundle 大小与依赖

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/asyrafhussin/agent-skills --skill react-vite-best-practices

安装后在 Claude Code 中输入/react-vite-best-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
README.md
rules/
_sections.md
_template.md
asset-fonts.md
asset-image-optimization.md
asset-public-dir.md
asset-svg-components.md
build-asset-hashing.md
build-compression.md
build-manual-chunks.md
build-minification.md
build-sourcemaps.md
build-target-modern.md
build-tree-shaking.md
bundle-visualizer.md
dev-dependency-prebundling.md
dev-fast-refresh.md
dev-hmr-config.md
env-modes.md
env-sensitive-data.md
env-vite-prefix.md
split-component-lazy.md
split-dynamic-imports.md
split-prefetch-hints.md
split-route-lazy.md
split-suspense-boundaries.md

详细介绍

React + Vite 最佳实践

React 应用的全面性能优化指南,适用于使用 Vite 构建的项目。涵盖 6 个类别中的 23 条规则,涉及构建优化、代码拆分、开发性能、资源处理、环境配置和包分析。

元数据

  • 版本: 2.0.0
  • 框架: React + Vite
  • 规则数量: 6 个类别中的 23 条规则
  • 许可证: MIT

适用场景

以下情况请参考这些指南:

  • 为 React 项目配置 Vite
  • 实现代码拆分和延迟加载
  • 优化构建输出和包大小
  • 配置开发环境和 HMR
  • 处理图像、字体、SVG 和静态资源
  • 管理不同环境中的环境变量
  • 分析包大小和依赖项

按优先级划分的规则类别

优先级类别影响前缀
1构建优化严重build-
2代码拆分严重split-
3开发高dev-
4资源处理高asset-
5环境配置中env-
6包分析中bundle-

快速参考

1. 构建优化(严重)
  • build-manual-chunks - 配置手动分块以分离供应商代码
  • build-minification - 使用 OXC(默认)或 Terser 进行压缩
  • build-target-modern - 面向现代浏览器(baseline-widely-available)
  • build-sourcemaps - 按环境配置源映射
  • build-tree-shaking - 使用 ESM 确保正确进行摇树优化
  • build-compression - Gzip 和 Brotli 压缩
  • build-asset-hashing - 基于内容进行哈希处理,以更新缓存
2. 代码拆分(严重)
  • split-route-lazy - 使用 React.lazy() 按路由拆分
  • split-suspense-boundaries - 策略性地放置 Suspense 边界
  • split-dynamic-imports - 使用动态 import() 加载大型组件
  • split-component-lazy - 延迟加载非关键组件
  • split-prefetch-hints - 在悬停、空闲或进入视口时预获取分块
3. 开发(高)
  • dev-dependency-prebundling - 配置 optimizeDeps 以加快启动速度
  • dev-fast-refresh - React Fast Refresh 模式
  • dev-hmr-config - HMR 服务配置
4. 资源处理(高)
  • asset-image-optimization - 图像优化和延迟加载
  • asset-svg-components - 使用 SVGR 将 SVG 作为 React 组件
  • asset-fonts - Web 字体加载策略
  • asset-public-dir - 公共目录与 JavaScript 导入
5. 环境配置(中)
  • env-vite-prefix - 客户端变量使用 VITE_ 前缀
  • env-modes - 特定模式的环境文件
  • env-sensitive-data - 切勿在客户端代码中暴露机密
6. 包分析(中)
  • bundle-visualizer - 使用 rollup-plugin-visualizer 分析包

核心配置

推荐的 vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'

export default defineConfig({
  plugins: [react()],

  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
    },
  },

  build: {
    target: 'baseline-widely-available',
    sourcemap: false,
    chunkSizeWarningLimit: 500,
    rollupOptions: {
      output: {
        manualChunks: {
          vendor: ['react', 'react-dom'],
        },
      },
    },
  },

  optimizeDeps: {
    include: ['react', 'react-dom'],
  },

  server: {
    port: 3000,
    hmr: {
      overlay: true,
    },
  },
})
按路由拆分代码
import { lazy, Suspense } from 'react'

const Home = lazy(() => import('./pages/Home'))
const Dashboard = lazy(() => import('./pages/Dashboard'))
const Settings = lazy(() => import('./pages/Settings'))

function App() {
  return (
    <Suspense fallback={<LoadingSpinner />}>
      {/* Routes here */}
    </Suspense>
  )
}
环境变量
// src/vite-env.d.ts
/// <reference types="vite/client" />

interface ImportMetaEnv {
  readonly VITE_API_URL: string
  readonly VITE_APP_TITLE: string
}

interface ImportMeta {
  readonly env: ImportMetaEnv
}

使用方法

阅读各条规则文件,了解详细说明和代码示例:

rules/build-manual-chunks.md
rules/split-route-lazy.md
rules/env-vite-prefix.md

参考资料

完整编译文档

如需查看包含所有展开规则的完整指南:AGENTS.md

评论

支持 Markdown