# MonoRepo 實戰指南:工具選型與 OXC 性能突破 - Michael {%hackmd @JSDC2024/tsbu7yyvRJuYDgOZyikbHQ %} - 簡報連結:https://ming-talks.vercel.app/2025-06-29/2 - 講者社群帳號 - IG: https://www.instagram.com/michaello.dev/ Slido: https://app.sli.do/event/sjq3ZhBB9LL7PYcpsxYyNT > 開始做筆記 當然可以,以下是整理與潤飾後的內容,適合用於簡報或部落格摘要: --- ## 🔧 工具選型建議 * **Next.js 專案**:建議使用 **Turborepo**,除了良好的 MonoRepo 管理能力外,也整合了 **Serverless 架構下的快取機制(caching)**,在部署與開發效率上表現出色。 * **其他框架(如 Angular、NestJS、React SPA 等)**:推薦使用經過社群長期驗證、**超過五年穩定發展的 Nx**,擁有完善的生態系與彈性的 plugin 系統。 * **Void Zero 生態系**:(待補充,原文提到但未說明細節) ## 🚀 OXC 的效能革命 * **OXC 是下一代的 Lint 檢查工具**,專為速度與效能而生。 * **曾實際在 CI/CD 工具中導入**,原本需要 1~2 小時的流程,縮短為 **15~20 分鐘內完成**。 * **Shopify 專案導入 OXC 後**,原本需時 75 分鐘的靜態分析流程,縮短為 **僅需 10 秒**。 * **Airbnb 測試中包含 126 個檔案**,分析時間也只需 **約 7 秒**,展現極致效能。 ## ⚙️ 導入建議與現況 * OXC 目前已支援超過 **500 條規則**。 * 支援「**漸進式導入**」: * 若你專案中使用的 ESLint 規則,OXC 已內建支援,**可直接切換使用 OXC**。 * 其餘尚未支援的部分,則可維持使用 ESLint,並**逐步遷移**。 ## 會後問題回覆 by Michael > Q: 有沒有遇到當初先選pnpm 之後又得轉移成Nx(由小到大的經驗) > A: 有的,當團隊擴大,就可能會遇到需要更多的設定來區分各團隊的管理職責,當如果一開始在 pnpm 的話,轉到 Nx 相對的不是那麼痛,因為兩者都是基於原生 monoRepo 產出來的框架,只是需要新增 nx setting & nx CLI 來制定資料夾職責, > Q: 怎麼評估團隊導入 mono 的成本與時程,怎麼確保團隊成員都是有能力參與的 > A: 先評估痛點,過往是不是有哪一些問題,所以應該導入,透過漸進式的 tech sharing 來幫助團隊理解,接著開始製作 MVP 逐一做導入,不管是團隊影響或是環境影響都會是正能量的 > Q: 請問pnpm 和Nx 可以簡單說一下不同點嗎,例如Nx擁有的功能 Pnpm 卻沒有 > A: 兩者最大的差異就是 pnpm 功能比較單純是在做資源共享,沒有負責到整合 cloud CI & git flow 等等,ref: https://medium.com/@jathushan-r/optimizing-nx-monorepos-with-pnpm-a-developers-guide-4c37b6c084a6 > Q: oxlint 目前還需要搭配 eslint 執行的樣子 是因為還需要 eslint 的準確性嗎 > A: 是的,因為 oxlint 目前僅有 500 個規則,跟 eslint 支援的數量還有遙遠的差距,所以我們可以用漸進式的方式,先享用部分的 oxlint 效能,接著執行 eslint 確保專案是沒有破壞影響的 PS: 簡報這兩天會放上共筆 by Michael (已完成簡報網址更新,https://ming-talks.vercel.app/2025-06-29/2)