Hai, rakan pembangun! ?
Baru-baru ini, saya menyahut cabaran untuk memindahkan aplikasi React pengeluaran daripada Create React App (CRA) ke Vite. Hasilnya? Masa binaan kami merosot daripada 3 minit kepada 20 saat sahaja! ?
Dalam panduan ini, saya akan membimbing anda melalui keseluruhan proses migrasi, termasuk petua penting tentang pengendalian JSX dalam fail JavaScript yang boleh menjimatkan jam penyahpepijatan anda.
Sebelum menyelami butiran teknikal, mari lihat sebab anda mungkin mahu membuat suis ini. Pasukan kami melihat beberapa peningkatan yang mengagumkan:
Metric | Before (CRA) | After (Vite) |
---|---|---|
Dev Server Startup | 30s | 2s |
Hot Module Replacement | 2-3s | <100ms |
Production Build | 3 min | 20s |
Bundle Size | 100% | 85% |
Selain itu, anda mendapat ciri hebat ini:
Mula-mula, buat cawangan baharu:
git checkout -b feature/migrate-to-vite
Alih keluar CRA dan tambah Vite:
# Remove CRA dependencies npm uninstall react-scripts @craco/craco # Install Vite and related dependencies npm install -D vite @vitejs/plugin-react
Buat vite.config.js dalam akar projek anda:
import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import path from 'path'; export default defineConfig({ plugins: [ react({ // ? Key configuration for .js files with JSX include: "**/*.{jsx,js}", }), ], resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, server: { port: 3000, open: true, }, build: { outDir: 'build', sourcemap: true, }, });
Penting: Termasuk: "**/*.{jsx,js}" konfigurasi adalah penting! Tanpa ini, Vite hanya memproses JSX dalam fail .jsx.
Vite mengendalikan pembolehubah persekitaran secara berbeza:
// Before (CRA) process.env.REACT_APP_API_URL // After (Vite) import.meta.env.VITE_API_URL
Ganti skrip dalam package.json:
{ "scripts": { "start": "vite", "build": "vite build", "serve": "vite preview", "test": "vitest", "lint": "eslint src --ext .js,.jsx" } }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <link rel="icon" type="image/svg+xml" href="/favicon.ico" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Your App Name</title> </head> <body> <div> <h2> ? Common Challenges and Solutions </h2> <h3> 1. JSX in .js Files </h3> <p>This is usually the first hurdle. You have two options:</p> <h4> Option 1: Configure Vite (Recommended) </h4> <p>Add the include option as shown in the config above.</p> <h4> Option 2: Rename Files </h4> <pre class="brush:php;toolbar:false"># Unix/Linux command to rename files find src -name "*.js" -exec sh -c 'mv "" "${1%.js}.jsx"' _ {} \;
Kemas kini vite.config.js:
resolve: { alias: { '@components': '/src/components', '@assets': '/src/assets', '@utils': '/src/utils' } }
Pasang dan konfigurasikan vite-plugin-svgr:
npm install -D vite-plugin-svgr
import svgr from 'vite-plugin-svgr'; export default defineConfig({ plugins: [react(), svgr()], // ... });
Sebelum melakukan:
Walaupun berhijrah dari CRA ke Vite mungkin kelihatan menakutkan, peningkatan prestasi menjadikannya berbaloi. Ingat:
Sudahkah anda memindahkan apl React anda ke Vite? Apakah cabaran yang anda hadapi? Kongsi pengalaman anda dalam ulasan!
Temui ini membantu? Ikuti saya untuk mendapatkan lebih banyak petua React dan JavaScript!
Saya akan membalas komen dan soalan secara aktif. Beritahu saya jika anda memerlukan sebarang penjelasan tentang proses penghijrahan!
Atas ialah kandungan terperinci Berhijrah daripada Apl Buat React ke Vite: Panduan Pembangun. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!