https://pnpm.io/zh/installation
安裝
npm install -g pnpm
升級
pnpm add -g pnpm
故障排查
- which pnpm來找到 pnpm 的位置
pnpm CLI
與 npm 的差別
- 與 npm 不同的是,pnpm 會校驗所有的參數。
- 設置明確的環境變量:npm_config_foo=true pnpm install
- 用 --config.強制使用未知選項: pnpm install --config.foo
配置項
- -C
, --dir <path> 在 <path> 中啟動 pnpm ,而不是當前的工作目錄。 - -w, --workspace-root 在工作空間的根目錄中啟動 pnpm ,而不是當前的工作目錄。
命令行
- npm install => pnpm install
- npm i
=> pnpm add - npm run
=> pnpm - 當你使用一個未知命令時, pnpm 會查找一個具有指定名稱的腳本, 所以 pnpm run lint 和 pnpm lint相同. 如果沒有指定名稱的腳本,那么pnpm將以shell腳本的形式執行該命令,所以你可以做類似pnpm eslint的事情
配置
- pnpm 使用 npm 的配置 格式
pnpm config set store-dir /path/to/.pnpm-store
- pnpm 也允許您使用所有標記為作選項的參數(例如 --filter 或 --workspace concurrency)
workspace-concurrency = 1
filter = @my-scope/*
過濾
pnpm <command> --filter <package_selector>
- 要選擇准確的包,只需指定其名稱或使用 模式來選擇一組包
pnpm test --filter "@babel/core"
pnpm test --filter "@babel/*"
pnpm test --filter "*core"
- 要選擇一個軟件包及其依賴項 (直接和非直接) 在包名稱后加上省略號
- 下一個命令將運行 foo 及其所有依賴的測試
pnpm test --filter foo...
- 可以使用通配符來選擇一組根目錄包
pnpm test --filter "@babel/preset-*..."
- 要只選擇一個包的依賴項(直接和非直接), 在包名前添加一個山形符號加上上面提到的省略號。
pnpm test --filter "...^foo"
-
要僅選擇指定目錄下的包,您可以指定任何相對路徑,路徑通常為 POSIX 格式。
--filter ./<directory>
-
包括指定目錄下的所有項目。也可以使用省略號與山形符號來選擇依賴項與被依賴項
pnpm <cmd> --filter ...{<directory>}
pnpm <cmd> --filter {<directory>}...
pnpm <cmd> --filter ...{<directory>}...