pnpm

pnpm

熱門

Node.js 套件管理器,具有嚴格的相依性解析。在執行 pnpm 特定指令、透過 pnpm-workspace.yaml 設定工作區,或使用目錄、修補程式、覆寫、設定相依性及全域虛擬儲存庫管理相依性時使用。

5444星標
304分支
更新於 2026/7/1
SKILL.md
readonlyread-only
name
pnpm
description

Node.js 套件管理器,具有嚴格的相依性解析。在執行 pnpm 特定指令、透過 pnpm-workspace.yaml 設定工作區,或使用目錄、修補程式、覆寫、設定相依性及全域虛擬儲存庫管理相依性時使用。

pnpm 是一個快速、節省磁碟空間的套件管理器。它使用內容可定址儲存庫來跨機器上的所有專案重複資料刪除套件,並預設強制執行嚴格的相依性解析,防止幽靈相依性。

設定模型(重要): pnpm 設定現在位於 pnpm-workspace.yaml(以及全域的 config.yaml)中,使用 camelCase 鍵。.npmrc 僅用於驗證/註冊表憑證,package.json 中的 pnpm 欄位不再被讀取。在 pnpm 專案中工作時,請檢查 pnpm-workspace.yaml 以了解設定/工作區結構,並僅檢查 .npmrc 以了解驗證資訊。在 CI 中始終使用 --frozen-lockfile(或 pnpm ci)。

此技能基於 pnpm 10.x,生成於 2026-06-22。它也涵蓋 v11 的行為變更(設定拆分、隔離的全域套件、allowBuildspmOnFail、全域虛擬儲存庫),只要目前文件有描述。

核心

主題 說明 參考
CLI 指令 install/add/remove/update, run, dlx/pnx, workspace, runtime, publishing (version, view, sbom, stage) core-cli
設定 pnpm-workspace.yaml 設定(camelCase)、全域 config.yaml、packageConfigs、.npmrc 驗證 core-config
工作區 單一儲存庫支援:過濾、工作區協定、共用鎖定檔、packageConfigs core-workspaces
儲存庫 內容可定址儲存庫、虛擬儲存庫、node linker 模式、凍結/唯讀儲存庫 core-store

功能

主題 說明 參考
目錄 集中式相依性版本;catalogMode、overrides 中的 catalog: features-catalogs
覆寫 強制版本(包括傳遞與同儕相依性);packageExtensions features-overrides
修補程式 修改第三方套件;pnpm-workspace.yaml 中的 patchedDependencies features-patches
別名 以自訂名稱安裝(npm:)和註冊表別名(namedRegistries) features-aliases
鉤子 .pnpmfile.mjs 鉤子(readPackage、updateConfig、beforePacking)、finders、resolvers/fetchers features-hooks
同儕相依性 自動安裝、嚴格模式、規則、dedupePeers、peers 檢查 features-peer-deps
設定相依性 透過 configDependencies 跨儲存庫共用鉤子/設定/目錄/修補程式 features-config-dependencies
全域虛擬儲存庫 共用 node_modules、git-worktree 多代理設定、隔離的全域套件 features-global-virtual-store
供應鏈安全 建置核准(allowBuilds)、minimumReleaseAge、trustPolicy、鎖定檔完整性 features-supply-chain-security

最佳實踐

主題 說明 參考
CI/CD 設定 GitHub Actions、GitLab、Docker、pnpm ci、儲存庫快取、凍結鎖定檔 best-practices-ci
遷移 npm/Yarn → pnpm、幽靈相依性、以及 pnpm v10 → v11 設定遷移 best-practices-migration
效能 安裝最佳化、allowBuilds、全域虛擬儲存庫、工作區平行化 best-practices-performance