iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
自我挑戰組

讓我們一起與turboRepo共舞系列 第 16

pnpm monoRepo 實際案例

  • 分享至 

  • xImage
  •  

pnpm 的優點

  • 優化磁碟空間和安裝速度:使用硬連結和符號連結減少空間佔用和安裝時間
  • 嚴格的依賴關係管理:確保應用程式只訪問 package.json 中聲明的依賴項
  • 原生支援 Monorepo:通過 pnpm workspaces 功能簡化跨項目的包管理

Monorepo 的優缺點

  • 優點:

    • 代碼共享和重用
    • 簡化依賴管理
    • 原子提交
    • 簡化工作流程
  • 缺點:

    • 代碼庫可能變得龐大
    • 權限管理複雜
    • 可能導致項目間過度耦合

基本設置

安裝 pnpm:
npm install -g pnpm
初始化項目:
pnpm init

配置 pnpm workspaces

在根目錄創建 pnpm-workspace.yaml:

packages:
  - 'packages/*'
  - 'components/**'
  - '!**/test/**'

常用命令

pnpm -w: 在工作空間根目錄執行命令
pnpm --filter: 限制命令執行範圍到特定包
pnpm -r: 在每個子項目中遞迴執行命令
pnpm run --parallel: 並行執行腳本

模組間相互依賴

在 pkg-b 中添加 pkg-a 作為依賴:
pnpm add @sway/monorepo-pkg-a --filter @sway/monorepo-pkg-b

使用 changesets 管理版本和發布

安裝:
初始化:

pnpm changeset init
生成 changeset:
pnpm changeset

發布測試版本:

pnpm changeset pre enter beta
pnpm changeset version
pnpm changeset publish

發布正式版本:

pnpm changeset version
pnpm changeset publish

這些是使用 pnpm 和 changesets 管理 Monorepo 專案的主要步驟和命令。每個步驟都有其特定的用途,有助於更有效地管理複雜的專案結構和版本控制。


上一篇
TurboRepo 整合 (CI) 的建構 2
下一篇
Turborepo 實際案例2
系列文
讓我們一起與turboRepo共舞30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
danny101201
iT邦新手 2 級 ‧ 2024-09-30 23:41:27

學到了

我要留言

立即登入留言