嘿,開發者們! ?
最近,我接受了將生產 React 應用程式從 Create React App (CRA) 遷移到 Vite 的挑戰。結果?我們的建造時間從 3 分鐘驟降到僅 20 秒! ?
在本指南中,我將引導您完成整個遷移過程,包括在 JavaScript 檔案中處理 JSX 的重要技巧,這可以節省您數小時的偵錯時間。
在深入了解技術細節之前,讓我們看看您可能想要進行此轉換的原因。我們的團隊看到了一些令人印象深刻的改進:
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% |
此外,您還可以獲得這些很棒的功能:
首先,建立一個新分支:
git checkout -b feature/migrate-to-vite
移除CRA並加入Vite:
# Remove CRA dependencies npm uninstall react-scripts @craco/craco # Install Vite and related dependencies npm install -D vite @vitejs/plugin-react
在專案根目錄建立 vite.config.js:
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, }, });
重要: include: "**/*.{jsx,js}" 配置至關重要!如果沒有這個,Vite 只會處理 .jsx 檔案中的 JSX。
Vite 對環境變數的處理方式不同:
// Before (CRA) process.env.REACT_APP_API_URL // After (Vite) import.meta.env.VITE_API_URL
替換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"' _ {} \;
更新 vite.config.js:
resolve: { alias: { '@components': '/src/components', '@assets': '/src/assets', '@utils': '/src/utils' } }
安裝並設定 vite-plugin-svgr:
npm install -D vite-plugin-svgr
import svgr from 'vite-plugin-svgr'; export default defineConfig({ plugins: [react(), svgr()], // ... });
提交之前:
雖然從 CRA 遷移到 Vite 可能看起來令人畏懼,但效能的提升使其變得值得。請記住:
您的 React 應用程式遷移到 Vite 了嗎?您面臨哪些挑戰?在評論中分享您的經驗!
覺得這有幫助嗎?關注我以獲取更多 React 和 JavaScript 技巧!
我會積極回覆評論和問題。如果您需要任何有關遷移過程的說明,請告訴我!
以上是從 Create React App 遷移到 Vite:開發人員指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!