pnpm 命令速查
pnpm 快速參考:install / add / remove / update、scripts、workspaces、store 與 cache、config——聚焦於 GitHub 站 pnpm 倉庫的工作流,附參數與實作範例。
31 條命令
安裝與管理
pnpm install安裝 package.json 中宣告的所有依賴,並視需要更新 lockfile。
--frozen-lockfile(本倉庫 CI 預設);--prod;--offline;--ignore-scripts;--shamefully-hoist;--strict-peer-dependencies=false;--prefer-offline
pnpm install --frozen-lockfilepnpm add <pkg>新增一個執行階段依賴並寫入 package.json。
-D / --save-dev;-E / --save-exact;-O / --save-optional;-P / --save-prod;-g 全域;--workspace-root 安裝到 workspace 根目錄
pnpm add -D vitest @types/nodepnpm add -g <pkg>全域安裝工具(例如 TypeScript、ESLint、tsx)到 PATH。
-g;--global-prefix;--reporter append|ndjson
pnpm add -g typescript tsxpnpm remove <pkg>從專案與 lockfile 中移除依賴。
-D 從 devDependencies;-g 從全域;--filter pkg 僅從單一 workspace 移除
pnpm remove lodash && pnpm remove -F web -D @types/jestpnpm update / pnpm update -L在 semver 範圍內更新依賴;-L / --latest 直接升級到最新版本。
-L / --latest;-i / --interactive;--workspace-root;--filter
pnpm update -i vue && pnpm update -L @nuxt/i18npnpm outdated顯示過期的套件及其目前/目標/最新版本。
--long;--recursive / -r;--filter
pnpm outdated -r --longpnpm list列出已安裝的套件及依賴關係樹。
--depth 0 只列直接依賴;--prod / --dev;-r 遞迴;--json | jq
pnpm list --depth 0 --prod | head -20pnpm audit / pnpm audit --fix對 lockfile 執行 npm 風格的安全漏洞檢查。
--prod 僅檢查正式依賴;--json
pnpm audit --json | jq '.metadata.vulnerabilities'pnpm dedupe盡可能將重複的依賴提升為單一版本,精簡 lockfile/依賴樹。
--check;--strict-peer-dependencies=false
pnpm dedupe --checkpnpm rebuild重新建置原生依賴(升級 Node 後或需要 post-build 時)。
--reporter;--recursive;--filter
pnpm rebuild -r && pnpm rebuild esbuildpnpm approve-builds為需要原生建置的套件(例如 esbuild、sharp、@swc/core)核准建置腳本。
互動式提示;亦可透過 package.json#pnpm.onlyBuiltDependencies 設定
pnpm approve-builds --yes esbuild @parcel/watcherpnpm import將既有的 package-lock.json / yarn.lock 匯入 pnpm-lock.yaml。
import;無其他額外參數
pnpm import --no-lockfile執行與開發體驗
pnpm run <script>執行 package.json#scripts 中定義的腳本。
-r / --recursive 在每個套件中執行;--filter / -F 鎖定單一套件;--parallel;--no-color
pnpm run dev && pnpm -F src/www run buildpnpm dlx <pkg>從 registry 取得套件並執行其可執行檔,無需永久安裝。
dlx pkg args;--package 額外套件;--silent
pnpm dlx create-vite@latest my-app --template vue-ts && pnpm dlx vitest --runpnpm exec <cmd>在專案環境中執行命令(PATH 會包含 .node_modules/.bin)。
exec ...;--filter 鎖定 workspace;--recursive;--parallel
pnpm exec vitest run && pnpm exec -- tsc --noEmit -p src/www/tsconfig.jsonpnpm create <name>從 create-* 風格的套件建立新專案。
create [name] [args];-y / --yes
pnpm create nuxt my-app && cd my-app && pnpm installWorkspace
pnpm -r <cmd>遞迴——在 workspace 中的每個套件執行同一個 pnpm 動作。
-r run build;--parallel;--topology 拓撲排序;--order
pnpm -r --filter "./packages/**" run build --silentpnpm --filter <pkg>依名稱、目錄、glob 或 ./相對路徑鎖定單一套件。
--filter pkg | --filter ./packages/foo | --filter {pkg} 嚴格只比對名稱;-F 別名
pnpm --filter trowsoft-pdf-merge run build && pnpm -F "./packages/tools/*" outdatedpnpm add ... -w / --workspace-root新增一個被整個 workspace 共用的提升式 dev 依賴。
-w / --workspace-root;-D 加入 devDeps
pnpm add -Dw typescriptStore 與快取
pnpm store path輸出 pnpm 內容定址 store 的路徑(跨專案去重)。
store path;--virtual-store-dir DIR
pnpm store path && du -sh $(pnpm store path)pnpm store prune從 store 移除已無引用的套件(減少磁碟佔用)。
store prune;--force 跳過確認
pnpm store prunepnpm cache list / cache delete列出或刪除 pnpm 中繼資料快取中的項目。
cache list;cache delete <pkg>@<ver>;--registry
pnpm cache list vitest@latest設定與資訊
pnpm config get|set <key> [value]讀取或寫入使用者/全域/store/專案層級的 pnpm 設定。
config get key;config set key val;--location project|user|global
pnpm config set registry https://registry.npmjs.org/ --location user && pnpm config get registrypnpm config delete|list列出所有生效中的設定鍵,或刪除其中之一。
config list --location project;config delete key
pnpm config list --location projectpnpm why <pkg>解釋套件為何會在 node_modules 中——顯示依賴鏈。
--prod;--dev;-r;--filter
pnpm why -r vue && pnpm why lodash -rpnpm link / pnpm link --global將本地套件符號連結到當前專案,或將全域套件安裝到本地。
link(使用 ./);link --global <pkg>;--dir
cd packages/tools/foo && pnpm link --global && cd my-app && pnpm link --global foo發佈與打包
pnpm publish將目前套件發佈到設定好的 registry。
--dry-run;--tag alpha|beta|next;--access public|restricted;--otp N;--filter
pnpm publish --dry-run --tag canary --access publicpnpm pack產生套件 tarball 但不發佈(用於其他管道上傳)。
--pack-gzip-level 0..9;--pack-destination DIR
pnpm pack --pack-destination ./release常用工作流
pnpm recursive list / pnpm -r why一次檢視整個 workspace 的依賴樹。
pnpm recursive list --depth 0pnpm run --filter <pkg> test只在單一 workspace 中執行腳本——適合細粒度的 CI。
--filter 含 dependencies/dependents;--parallel
pnpm --filter "trowsoft-pdf-*" run build --parallelpnpm sync:tools / pnpm build:tools本倉庫的輔助指令——將工具翻譯同步進 Nuxt 應用,接著建置工具套件。
pnpm sync:tools && pnpm build:tools速查頁版本 1.0.0
適用於 pnpm 9+