在 Lerna 中使用 pnpm
Lerna 可在 pnpm
工作區 中使用,以同時取得 pnpm
和 Lerna 的所有優點。
在 pnpm
工作區中使用時,Lerna 會:
- 透過
pnpm-workspace.yaml
解析套件位置 (https://pnpm.dev.org.tw/workspaces) - 略過
package.json
中的"workspaces"
- 封鎖
bootstrap
、link
和add
指令的使用。您應直接使用pnpm
指令來管理依賴項 (https://pnpm.dev.org.tw/cli/install). - 尊重套件依賴項的 工作區協定。
- 在
lerna version
期間,依賴項會按正常方式更新,但如果存在,會保留workspace:
前置詞。 - 如果使用的 工作區別名,則
lerna version
沒有版本號碼要升級,因為別名不會指定版本號碼要升級。
- 在
入門
在 Lerna 中設定 pnpm
-
如果尚未安裝,請安裝
pnpm
:https://pnpm.dev.org.tw/installation。 -
移除根目錄中的
node_modules/
資料夾,如果存在。如果您沒有使用工作區,請執行lerna clean
來移除所有套件中的node_modules/
資料夾。 -
在
lerna.json
中設定"npmClient": "pnpm"
。 -
在專案的根目錄中,建立一個
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.yamlpackages:
- "packages/*" -
(選擇性)執行
pnpm import
根據現有的鎖定檔來產生一個pnpm-lock.yaml
檔。請參閱 https://pnpm.dev.org.tw/cli/import 以取得支援鎖定檔來源的相關資訊。 -
執行
pnpm install
。