Vite supports various frontend frameworks including Vue, React, Svelte, Solid, etc. Here's how to integrate Vite with different frameworks:
Vue Integration:
- Create Vue Project:
bashnpm create vite@latest my-vue-app -- --template vue
- Configuration File:
javascript// vite.config.js import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue()] })
- JSX Support:
javascriptimport vueJsx from '@vitejs/plugin-vue-jsx' export default defineConfig({ plugins: [vue(), vueJsx()] })
React Integration:
- Create React Project:
bashnpm create vite@latest my-react-app -- --template react
- Configuration File:
javascript// vite.config.js import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ plugins: [react()] })
- Fast Refresh: Vite's React plugin automatically supports Fast Refresh
Svelte Integration:
- Create Svelte Project:
bashnpm create vite@latest my-svelte-app -- --template svelte
- Configuration File:
javascript// vite.config.js import { defineConfig } from 'vite' import { svelte } from '@sveltejs/vite-plugin-svelte' export default defineConfig({ plugins: [svelte()] })
Solid Integration:
- Create Solid Project:
bashnpm create vite@latest my-solid-app -- --template solid
- Configuration File:
javascript// vite.config.js import { defineConfig } from 'vite' import solid from 'vite-plugin-solid' export default defineConfig({ plugins: [solid()] })
Common Configuration:
Path Aliases:
javascriptimport path from 'path' export default defineConfig({ resolve: { alias: { '@': path.resolve(__dirname, './src') } } })
Environment Variables:
javascriptexport default defineConfig(({ mode }) => { return { define: { __APP_ENV__: JSON.stringify(mode) } } })
CSS Preprocessors:
javascriptexport default defineConfig({ css: { preprocessorOptions: { scss: { additionalData: `$injectedColor: orange;` } } } })
Best Practices:
- Use official templates to create projects for best configuration
- Choose appropriate plugins based on framework characteristics
- Configure path aliases reasonably to simplify imports
- Use environment variables to manage different environment configurations
- Use framework-specific optimization plugins
Framework-Specific Optimizations:
- Vue: Use
@vitejs/plugin-vue'sscriptoptions for optimization - React: Configure
@vitejs/plugin-react'sjsxImportSource - Svelte: Configure
@sveltejs/vite-plugin-svelte'spreprocess - Solid: Use
vite-plugin-solid'ssolidoptions