Corepack
您可能會在閱讀我們的安裝指南時注意到,我們沒有告訴您執行 npm install -g yarn
來安裝 Yarn - 我們甚至不建議您這麼做。原因很簡單:就像您的專案依賴項必須鎖定一樣,套件管理員本身也應該鎖定。
將 Yarn 安裝為全域二進位檔表示您始終使用已發布的最新版本。大多數時候都能正常運作,但偶爾會發布一些可能影響專案安裝方式的東西 - 無論是錯誤修正、新錯誤或重大變更。
為了應對這個問題,Yarn 與 Node.js 專案合作開始開發Corepack,這是一個官方的 Node.js 工具,讓您定義要在每個專案中使用的套件管理員版本,就像您的鎖定檔對專案依賴項所做的那樣。
Corepack 標示為實驗性質,以便我們能更快地反覆運算其 CLI,但它已經是安裝套件管理員的首選方式,無論是 Yarn 或 pnpm。
安裝
Corepack 已包含在所有官方 Node.js 版本中,從 Node.js 14.19 / 16.9 開始。然而,在實驗階段期間,它需要選擇加入,因此您需要在它啟用之前執行 corepack enable
。
您可以快速透過執行 yarn exec env
來檢查 Corepack 是否已啟用:如果您取得路徑作為輸出,則表示 Corepack 已正確安裝。如果不是,則可能是安裝 shim 的方式出了問題。在這種情況下,請查看 疑難排解 部分以取得建議。
某些第三方發行商可能預設不包含 Corepack,特別是如果您從系統套件管理員安裝 Node.js。如果發生這種情況,在 corepack enable
之前執行 npm install -g corepack
應該可以解決問題。
疑難排解
離線工作流程
如果您使用氣隙網路(例如公司 CI 常見的情況),您可能會遇到 Corepack 無法為目前專案下載 Yarn 二進位檔的問題。Corepack 文件包含一個 專門部分,說明如何避免這個問題。
Volta
Volta 目前不與 Corepack 整合,因為它安裝自己的 shim,這會防止 Corepack shim 被套用。您需要執行以下兩個指令以強制整合
npm install -g corepack
# Specifying an explicit install-directory makes corepack overwrite volta's yarn shims, which is what we want
corepack enable --install-directory ~/.volta/bin