2025 OEM 網站開發筆記 [1] - 📌 Tech Stack

記錄專案使用到的技術

Posted by Young on 2025-02-07
Estimated Reading Time 3 Minutes
Words 824 In Total

前言

這次開發 OEM 代工網站會多使用 Vite 來簡化前端建構的流程與時間。,而非傳統的 Create React App (CRA),來縮短開發與部署時間,並讓網站載入速度更快、使用體驗更流暢,打造更現代化的動態 OEM 代工網站。

cra_to_vite

這次只會記錄重要的或遇到比較困難的狀況,不會像之前的筆記一樣每個步驟都寫得很詳細,避免重複性的內容

Tech Stack

UI/UX 設計工具

  • Figma:線上 UI/UX 設計工具,很適合團對進行 APP、網站原型設計
  • Canva:線上設計工具,快速製作簡單的圖像、海報、社群媒體圖片用
  • Adobe Photoshop:P、修圖用

(Frontend)前端:

  • React:前端三巨頭之一,常用來開發單頁APP(SPA),提供組件化開發模式,由 Meta的社群維護
  • TypeScript:微軟的開源程式語言,提供靜態類型檢查,適用大型專案開發
  • Vite:前端開發與建構工具(Bundler),提升 React 開發體驗,具有快啟動、熱更新(HMR)、輕量設定等優點
  • Tailwind CSS:相較於 Bootstrap 更輕量,高度靈活,採用「Utility First」理念的 CSS 框架

(UI Library & Data Visualization) UI套件:

  • lucide-react:輕量化開源 SVG ICON 元件庫
  • shadcn/ui:建立於 Radix UI 上,所有元件都可直接在專案中編輯
  • react-i18next:支援SSR,基於React / React Native 的i18n 框架,核心的概念為 ”Learn once — translate everywhere.”
  • Swiper JS:有非常多樣式、很方便使用的輪播套件
  • react-vertical-timeline-component:React 的垂直時間軸元件,用於顯示時間序列資料
  • GSAP:相見恨晚的 JavaScript 動畫套件,可開發客製化、複雜動畫與交互效果

(State Management) 狀態管理:

  • Redux:狀態管理工具
  • TanStack Query(React Query):Server data 的狀態管理工具,幫我們快取來自 server 的資料,並在適當的時間內盡可能使用快取或是在過期後背景重新取得資料

(Backend)後端:

  • Django:Python Web 框架,可快速開發與企業級專案,提供 ORM、身份驗證、管理介面等功能
  • Django REST Framework (DRF):靈活、擴展性高的 API 介面開發工具,方便建立 RESTful 服務
  • JWT (JSON Web Token):身份驗證和授權數據,適用於無狀態 API 身份驗證

(Database)資料庫:

  • MySQL:正式環境的關聯式資料庫,而非開發階段用的 SQLite

(Package Manager)套件管理工具:

  • pip:Python 套件管理工具,要使用虛擬環境內的 pip
  • npm:Node.js 套件管理工具,用於安裝前端相關套件

(Version control Tool)版本控制工具:

  • Git:分散式版本控制系統,用於專案版本控制

(Deployment)部署:

  • Linux(Ubuntu 20.04+) 主機:本專案不使用雲端 PaaS 服務(Heroku、Azure、GCP),而是自行架設 Linux 主機進行多個專案的維護
  • Systemd:管理多個系統中的服務啟動和服務管理狀態
  • SSH:遠端連線管理,如 (OpenSSH)
  • Nginx:反向代理伺服器(Reverse Proxy),Nginx 接收外部請求,然後將請求轉發給內部的伺服器(例如 Django),再把伺服器的回應傳回給使用者
  • uWSGI:應用伺服器(橋接 Web Server ↔ Django App),Django 與 Web Service 之間的接口

若您覺得這篇文章對您有幫助,歡迎分享出去讓更多人看到⊂◉‿◉つ~


留言版