cnpm
官網地址:https://npm.taobao.org/
爲解決國內用戶連接npm registry緩慢的問題,淘寶搭建了自己的registry,即淘寶npm鏡像源
過去,npm沒有提供修改registry的功能,因此,淘寶提供了一個CLI工具即cnpm,它支持除了npm publish
以外的所有命令,只不過連接的是淘寶鏡像源
如今,npm已經支持修改registry了,可能cnpm唯一的作用就是和npm共存,即如果要使用官方源,則使用npm,如果使用淘寶源,則使用cnpm
nvm
nvm並非包管理器,它是用於管理多個node版本的工具
在實際的開發中,可能會出現多個項目分別使用的是不同的node版本,在這種場景下,管理不同的node版本就顯得尤爲重要
nvm就是用於切換版本的一個工具
下載和安裝
最新版下載地址:https://github.com/coreybutler/nvm-windows/releases
下載nvm-setup.zip後,直接安裝
使用nvm
nvm提供了CLI工具,用於管理node版本
在終端中輸入nvm,以查看各種可用命令
爲了加快下載速度,建議設置淘寶鏡像
node淘寶鏡像:https://npm.taobao.org/mirrors/node/
npm淘寶鏡像:https://npm.taobao.org/mirrors/npm/
pnpm
pnpm是一種新起的包管理器,從npm的下載量看,目前還沒有超過yarn,但它的實現方式值得主流包管理器學習,某些開發者極力推薦使用pnpm
從結果上來看,它具有以下優勢:
- 目前,安裝效率高於npm和yarn的最新版
- 極其簡潔的node_modules目錄
- 避免了開發時使用間接依賴的問題
- 能極大的降低磁盤空間的佔用
安裝和使用
全局安裝pnpm
npm install -g pnpm
之後在使用時,只需要把npm替換爲pnpm即可
如果要執行安裝在本地的CLI,可以使用pnpx,它和 npx 的功能完全一樣,唯一不同的是,在使用pnpx執行一個需要安裝的命令時,會使用pnpm進行安裝
比如
npx mocha
執行本地的mocha
命令時,如果mocha
沒有安裝,則npx會自動的、臨時的安裝mocha,安裝好後,自動運行mocha命令
pnpm原理
-
同 yarn 和 npm 一樣,pnpm 仍然使用緩存來保存已經安裝過的包,以及使用 pnpm-lock.yaml 來記錄詳細的依賴版本
-
不同於 yarn 和 npm, pnpm 使用符號鏈接和硬鏈接(可將它們想象成快捷方式)的做法來放置依賴,從而規避了從緩存中拷貝文件的時間,使得安裝和卸載的速度更快
-
由於使用了符號鏈接和硬鏈接,pnpm可以規避windows操作系統路徑過長的問題,因此,它選擇使用樹形的依賴結果,有着幾乎完美的依賴管理。也因爲如此,項目中只能使用直接依賴,而不能使用間接依賴
注意事項
由於 pnpm 會改動 node_modules 目錄結構,使得每個包只能使用直接依賴,而不能使用間接依賴,因此,如果使用 pnpm 安裝的包中包含間接依賴,則會出現問題(現在不會了,除非使用了絕對路徑)
由於 pnpm 超高的安裝卸載效率,越來越多的包開始修正之前的間接依賴代碼
來源:渡一教育