從 Create React App 遷移到 Vite:開發人員指南
從 Create React App 遷移到 Vite:開發人員指南
嘿,開發者們! ?
最近,我接受了將生產 React 應用程式從 Create React App (CRA) 遷移到 Vite 的挑戰。結果?我們的建造時間從 3 分鐘驟降到僅 20 秒! ?
在本指南中,我將引導您完成整個遷移過程,包括在 JavaScript 檔案中處理 JSX 的重要技巧,這可以節省您數小時的偵錯時間。
?為什麼要切換到Vite?
在深入了解技術細節之前,讓我們看看您可能想要進行此轉換的原因。我們的團隊看到了一些令人印象深刻的改進:
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% |
此外,您還可以獲得這些很棒的功能:
- ⚡️ 快如閃電的 HMR
- ?開發過程中不捆綁
- ?配置更簡單
- ?更好的錯誤訊息
- ?原生 TypeScript 支援
?遷移步驟
1. 準備你的項目
首先,建立一個新分支:
git checkout -b feature/migrate-to-vite
2. 更新依賴
移除CRA並加入Vite:
# Remove CRA dependencies npm uninstall react-scripts @craco/craco # Install Vite and related dependencies npm install -D vite @vitejs/plugin-react
3.配置Vite
在專案根目錄建立 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。
4.環境變數
Vite 對環境變數的處理方式不同:
- 保留您的 .env 檔案
- 將變數從 REACT_APP_ 重新命名為 VITE_
- 更新參考資料:
// Before (CRA) process.env.REACT_APP_API_URL // After (Vite) import.meta.env.VITE_API_URL
5. 更新套件腳本
替換package.json中的腳本:
{ "scripts": { "start": "vite", "build": "vite build", "serve": "vite preview", "test": "vitest", "lint": "eslint src --ext .js,.jsx" } }
6. 移動index.html
- 將 public/index.html 移至根目錄
- 更新一下:
<!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"' _ {} \;
2. 絕對進口
更新 vite.config.js:
resolve: { alias: { '@components': '/src/components', '@assets': '/src/assets', '@utils': '/src/utils' } }
3.SVG支持
安裝並設定 vite-plugin-svgr:
npm install -D vite-plugin-svgr
import svgr from 'vite-plugin-svgr'; export default defineConfig({ plugins: [react(), svgr()], // ... });
✅ 遷移清單
提交之前:
- [ ] 開發伺服器啟動
- [ ] 熱模組更換有效
- [ ] 環境變數可存取
- [ ] 建造過程成功
- [ ] 導入路徑正確解析
- [ ] SVG 與資源載入
- [ ] CSS 模組可以運作
?結論
雖然從 CRA 遷移到 Vite 可能看起來令人畏懼,但效能的提升使其變得值得。請記住:
- 儘早為 .js 檔案設定 JSX 處理
- 更新環境變數
- 驗證導入路徑
- 徹底測試
您的 React 應用程式遷移到 Vite 了嗎?您面臨哪些挑戰?在評論中分享您的經驗!
覺得這有幫助嗎?關注我以獲取更多 React 和 JavaScript 技巧!
我會積極回覆評論和問題。如果您需要任何有關遷移過程的說明,請告訴我!
以上是從 Create React App 遷移到 Vite:開發人員指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務
