一? pnpm 介紹
? ? pnpm
(Package Manager)是一個快速、節省磁盤空間的 JavaScript 包管理器,它是 Node.js 生態系統中 npm
的一個替代品。pnpm
解決了傳統包管理工具在處理依賴時的一些痛點,特別是關于存儲空間使用和依賴地獄的問題。以下是 pnpm
的幾個核心特點和優勢:
-
高效的存儲機制:
pnpm
引入了“內容尋址存儲”(Content-Addressable Storage, CAS)的概念,它只在本地存儲每個依賴的一個實例。這意味著,即使多個項目或同一項目中的不同依賴共享同一個依賴包,它們也不會被重復下載和存儲。這極大地節省了磁盤空間,并加快了安裝速度。 -
硬鏈接和符號鏈接:通過使用硬鏈接或符號鏈接(在不支持硬鏈接的平臺上),
pnpm
將全局存儲中的依賴包鏈接到每個項目的node_modules
目錄中,而不是復制文件。這種方法保留了每個項目獨立的依賴環境,同時避免了冗余。 -
避免依賴地獄:
pnpm
確保所有依賴包的精確版本被安裝,通過它的“嚴格版本控制”,有助于預防因依賴版本不一致導致的“節點_modules地獄”問題,即不同模塊間依賴沖突的情況。 -
與 npm 的兼容性:盡管
pnpm
提供了自己獨特的功能和改進,但它設計上盡可能與npm
兼容,這意味著你可以無縫地從npm
遷移到pnpm
,而不需要對package.json
或工作流程做重大改動。 -
性能提升:由于減少了重復下載和存儲的需求,
pnpm
的安裝速度通常比npm
更快,尤其是在首次安裝之后的后續安裝,因為大部分依賴已經被本地存儲。 -
跨平臺支持:
pnpm
支持 Windows、macOS 和 Linux,適用于各種開發環境。
綜上所述,pnpm
通過其創新的依賴管理策略,提供了更快、更高效、更節省空間的包管理解決方案,馬上放棄npm
趕緊用pnpm吧
二? npm 升級用 pnpm
? 首次使用未安裝pnpm時我們要安裝安裝pnpm
npm install -g pnpm
? 如果之前的老項目用npm安裝的,請把node_modules刪除。
用pnpm重新安裝:
pnpm install
安裝依賴,如下圖:
?
安裝完成,運行,如下圖:
?
pnpm操作與原來的npm操作都一樣,這點非常好,完全不用學拿來就用。