iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
生成式 AI

30 天用 Cursor 開發專案:AI 輔助程式開發實戰紀錄系列 第 25

Day 25:UI 套件化 — 讓 Cursor 幫你拆解前台元件,打造可重用的 UI Library

  • 分享至 

  • xImage
  •  

圖片

隨著專案越來越大,你會發現前台元件愈來愈多、重複的代碼也愈來愈難維護。

今天,我們要利用 Cursor 的 AI 能力,讓它幫我們自動分析專案中的 UI 元件,

然後一步步拆解、封裝,建立一個屬於自己的 可重用 UI Library

這不只是「程式碼整理」,而是讓 Cursor 成為你團隊中的「UI 架構師」。


🎯 今天的目標

  • 用 Cursor 自動分析 UI 結構
  • 將重複元件抽出,封裝成可重用模組
  • 建立一個可被多專案共用的 UI Library
  • 讓 Cursor 幫你維護一致的樣式與介面規範

🧩 Step 1:請 Cursor 找出重複元件

打開 Cursor,選擇你專案的 /components 目錄,並輸入以下提示詞:

🧠 Prompt:

「請幫我分析目前專案中出現頻率最高、可共用的前端元件,

並列出它們的用途與相似度,建議我應該先抽出哪幾個 UI 元件。」

Cursor 會自動掃描並列出建議清單,例如:

  • Button:用於多種操作按鈕
  • Card:資訊區塊、文章預覽
  • Tag:標籤樣式重複度高
  • Modal:不同頁面有相似彈窗結構

這時我們就能依據 Cursor 的分析結果,挑選最值得模組化的元件。


⚙️ Step 2:建立 Library 架構

接著,在 Cursor 中輸入:

🧠 Prompt:

「幫我建立一個 packages/ui-library 資料夾,

並將常用 UI 元件封裝成獨立模組,導出於 index.ts,

每個元件都需有明確的 props 類型與 story demo。」

Cursor 會直接幫你:

  • 建立 packages/ui-library
  • /components 下的重複元件移入 Library
  • 自動補上 TypeScript 型別定義
  • 幫你生成乾淨的 index.ts 匯出入口

Cursor 甚至會自動重構 CSS、引用樣式檔、並修正 import 路徑。


🧠 Step 3:讓 Cursor 協助主題化(Theme System)

接著,我們可以讓 Cursor 幫忙建立一個簡單的主題系統。

在對話中輸入:

🧠 Prompt:

「請幫我在 ui-library 中加入主題支援(light / dark mode),

並讓每個元件可透過 context 自動切換樣式。」

Cursor 會生成像這樣的程式碼:

export const ThemeContext = createContext({ mode: "light" })

export const useTheme = () => useContext(ThemeContext)

export const ThemeProvider = ({ mode, children }: { mode: string; children: ReactNode }) => {
  return (
    <ThemeContext.Provider value={{ mode }}>
      <div className={mode === "dark" ? "dark" : "light"}>{children}</div>
    </ThemeContext.Provider>
  )
}

它甚至會自動在每個元件中套入條件樣式控制(如 className={theme === 'dark' ? ...})。


🧰 Step 4:用 Cursor 生成測試與展示頁

AI 不只會幫你封裝元件,也能幫你自動建立 demo 與測試環境

你可以說:

🧠 Prompt:

「幫我在 /ui-library/stories 中建立每個元件的 Storybook 示例與 Jest 測試範例。」

Cursor 會:

  • 建立 Storybook 格式的 UI 展示檔
  • 為每個元件自動生成 snapshot 測試
  • 保持與現有樣式一致

這讓 UI Library 更容易被團隊採用與維護。


📦 Step 5:讓 Cursor 幫你打包與發佈

最後一步,我們可以讓 Cursor 幫我們生成完整的打包設定。

🧠 Prompt:

「幫我設定 tsup 打包配置,將 ui-library 輸出為可被其他專案安裝的 npm 套件。」

Cursor 會建立以下檔案:

{
  "name": "@synvize/ui-library",
  "version": "1.0.0",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "scripts": {
    "build": "tsup src/index.tsx --format esm,cjs --dts"
  }
}

完成後,只要在主專案中執行:

pnpm link ../packages/ui-library

即可直接使用你自己的 Library!


💡 延伸應用:讓 Cursor 成為你的 UI 設計師

接下來,你可以讓 Cursor 幫你:

  • 自動產生新的元件模板
  • 將 Figma 設計稿轉換成元件
  • 比對設計規範與現有代碼差異
  • 自動更新 Library 版本

這時候的 Cursor,不只是「寫程式的 AI」,

而是你團隊的 Design System 守護者


🧭 今日總結

任務 狀態
分析重複元件
建立 Library 架構
加入主題系統
自動產生 Storybook 與測試
打包成獨立 UI Library

我們今天讓 Cursor 幫你完成了一件許多團隊都覺得「麻煩但必要」的任務——

UI 套件化與模組封裝。


上一篇
Day 24:AI 協作開發 — 用 Cursor 打造智慧團隊工作流
系列文
30 天用 Cursor 開發專案:AI 輔助程式開發實戰紀錄25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言