跳至主要內容

在 Lerna 中使用 pnpm

Lerna 可在 pnpm 工作區 中使用,以同時取得 pnpm 和 Lerna 的所有優點。

pnpm 工作區中使用時,Lerna 會:

  • 透過 pnpm-workspace.yaml 解析套件位置 (https://pnpm.dev.org.tw/workspaces)
  • 略過 package.json 中的 "workspaces"
  • 封鎖 bootstraplinkadd 指令的使用。您應直接使用 pnpm 指令來管理依賴項 (https://pnpm.dev.org.tw/cli/install).
  • 尊重套件依賴項的 工作區協定
    • lerna version 期間,依賴項會按正常方式更新,但如果存在,會保留 workspace: 前置詞。
    • 如果使用的 工作區別名,則 lerna version 沒有版本號碼要升級,因為別名不會指定版本號碼要升級。

入門

在 Lerna 中設定 pnpm

  1. 如果尚未安裝,請安裝 pnpmhttps://pnpm.dev.org.tw/installation

  2. 移除根目錄中的 node_modules/ 資料夾,如果存在。如果您沒有使用工作區,請執行 lerna clean 來移除所有套件中的 node_modules/ 資料夾。

  3. lerna.json 中設定 "npmClient": "pnpm"

  4. 在專案的根目錄中,建立一個 pnpm-workspace.yaml 檔案。如果您已經在使用 npm 或 yarn 工作區,請將 "workspaces" 屬性從 package.json 移至 pnpm-workspace.yaml。如果您還沒使用工作區,請將 "packages" 屬性從 lerna.json 移至 pnpm-workspace.yaml。例如:

    package.json
    {
    "workspaces": ["packages/*"]
    }

    lerna.json
    {
    "packages": ["packages/*"]
    }

    變為

    pnpm-workspace.yaml
    packages:
    - "packages/*"
  5. (選擇性)執行 pnpm import 根據現有的鎖定檔來產生一個 pnpm-lock.yaml 檔。請參閱 https://pnpm.dev.org.tw/cli/import 以取得支援鎖定檔來源的相關資訊。

  6. 執行 pnpm install