什么是pnpm?
pnpm是 Node.js 的替代包管理器。它是 npm 的直接替代品,但速度更快、效率更高。
為什么效率更高?
當您安裝軟件包時,我們會將其保存在您機器上的全局存儲中,然后我們會從中創建一個硬鏈接,而不是進行復制。對于模塊的每個版本,磁盤上只保留一個副本。例如,當使用
npm
或yarn
時,如果您有 100 個使用lodash
的包,則磁盤上將有 100 個lodash
副本。pnpm
可讓您節省數 GB 的磁盤空間!
pnpm優勢
pnpm
擁有Yarn
超過 npm
的所有附加功能:
-
安全: 與
yarn
一樣,pnpm
有一個包含所有已安裝包校驗和的特殊文件,用于在執行代碼之前驗證每個已安裝包的完整性。 -
離線模式:
pnpm
將所有下載的包tarball
保存在本地注冊表鏡像中。當包在本地可用時,它從不發出請求。使用該--offline
參數可以完全禁止HTTP
請求。 -
速度:
pnpm
不僅比npm
快,而且比yarn
快。無論是冷緩存還是熱緩存,它都比yarn
快。yarn
從緩存中復制文件,而pnpm
只是從全局存儲中鏈接它們。
與 npm 的差別
- 與
npm
不同的是,pnpm
會校驗所有的參數。 比如,pnpm install --foo
會執行失敗,因為--foo
不是pnpm install
的有效參數。
但是,某些依賴關系可能使用 npm_config_
環境變量,其中 從 CLI
選項中填充。 在這種情況下,你有以下選擇:
- 設置明確的環境變量:
npm_config_foo=true pnpm install
- 用
--config.
強制使用未知選項:pnpm install --config.foo
pnpm使用
官網: https://pnpm.js.org/installation/
全局安裝
npm install pnpm -g
設置源:
// 查看源
pnpm config get registry
// 切換淘寶源
pnpm config set registry https://registry.npmmirror.com/
使用:
pnpm install 包名稱
pnpm i 包名稱
pnpm add 包名稱 // -S 默認寫入dependencies
pnpm add -D // -D devDependencies
pnpm add -g // 全局安裝
移除:
pnpm remove 包名稱 // 移除包
pnpm remove 包名稱 --global // 移除全局包
設置存儲路徑:
pnpm config set store-dir /path/to/.pnpm-store
個人使用
一些需要node-gyp的包一定要記得安裝好
在系統上禁止使用腳本解決方法
# 以管理員身份運行power shell
set-executionpolicy remotesigned