iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0

前言:印象中對Monorepo的認識

就我以前對Monorepo的了解,我知道可以把一個專案再切分幾個project,因此在bulid的時候可以不需要build整個專案,可以指定特定project。這節省了建置的時間,而且可以達到不同專案管理共用的邏輯與樣式檔。
https://ithelp.ithome.com.tw/upload/images/20230916/20136292zltockOXrA.png

接下來,開啟我們的學習之旅吧!

.
.
.


工具停看聽

  1. 這一回合我要幹嘛?
  • 準備要把前端專案導入Monorepo,先做一點行前功課
  • 搞清楚Monorepo和Nx的關係
  1. 希望工具能幫我做到什麼?
    => 用最短的時間讓我完成行前的study

  2. 希望工具能幫我到什麼程度?
    => 可以稍微了解一下要怎麼實作,但實際的部分可以等到實作篇再進行

.
.
.


問答式學習的第一步——問ChatGPT我該學什麼?

一樣,直接問ChatGPT會比較清楚學習的方向。我這裡只列出小標和簡短的說明,詳細的回答請見這個討論串

1. 選擇合適的工具
選擇一個適合你專案的 Monorepo 工具(例如 Nx、Lerna 或 Yarn Workspaces) 是基本的第一步。不同的工具有不同的特性,因此了解和選擇合適的工具對後續開發工作至關重要。

2. 了解 Monorepo 的優點和挑戰

3. 熟悉依賴管理和版本控制

4. 建立共享元件和服務庫
學習如何在 Monorepo 中創建和維護共享元件庫和服務,以確保專案之間的一致性和可重用性。這是利用 Monorepo 最大化程式碼重用的關鍵。

5. 學習測試策略

.
.
.


Nx與Monorepo的關係是...?

簡單來說,可以總結成這四點:

  1. 「Monorepo」是一種專案結構的設計方式,不是Angular這個框架專屬的東西
  2. Nx是一個套件,正確來說它更像是一個套件的「組合工具包」,它囊括了許多管理專案的功能/工具,
    在前端三大框架都可以安裝NX。
  3. Nx是「Nrwl」這間公司所推出的工具集,Nrwl是原Angular核心成員所成立的,
    因此它是非常「Angular-friendly」的一個套件,這也是為什麼Angular的開發者會這麼頻繁地提起Nx
  4. Nx內建提供快速設定Monorepo的快捷命令

.

我們來看一下ChatGPT對Nx所做的簡介:

什麼是Nx?

想像 Nx 是一個超級方便的工具箱,它可以幫助前端工程師更有效地建構和管理大型的專案。它尤其適用於使用 Angular,React 或其他前端框架的專案。

原理

Nx 利用一個「單一程式庫存放庫」(Monorepo)的架構,將所有相關的應用程式和程式庫放在一個地方。這就像把所有工具和資源都放在一個大工具箱裡,讓你能輕鬆找到和使用它們。

.
.
.


今日心得

就其實...直到這次鐵人賽,我才弄清楚Nx與Monorepo的關係(踹)。
圖片來源


上一篇
高效率學習SSR:問答式學習Angular Universal
下一篇
高效率學習Nx:你絕對不能錯過超級工具箱
系列文
軟體工程師必備的AI工具力—— 全方位實戰應用X核心Mindset養成30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言