使用pnpm取代萬年npm、yarn及nvm
動機
npm 最令人詬病的問題:
- 套件浪費大量硬碟容量,有100個專案需要使用同一種套件(1MB),就浪費100倍的硬碟容量(100MB)。
- 套件安裝速度較慢
- 扁平化的 node_modules 結構
pnpm 能解決以下兩點問題:
- 硬碟空間利用率非常高,使用同一個套件位置,當多個專案需要時,使用硬連結方式共享同版本的套件。
- 套件安裝速度比 npm 快
基於以上兩點,再加上能夠使用 pnpm 來管理 node.js 的版本,能以一抵三(npm、yarn、nvm)。
移除nvm
在終端機中輸入:
rm -rf $NVM_DIR
開啟
~/.zshrc
清除有關nvm
相關的環境設定1
2
3
4nvm & node
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
安裝pnpm
獨立腳本安裝pnpm
官網有說明,在沒有預先安裝 node.js 的情況下,可以使用獨立腳本安裝pnpm,新系統適合。
1 | curl -fsSL https://get.pnpm.io/install.sh | sh - |
如果沒有 curl,也可以使用 wget:
1 | wget -qO- https://get.pnpm.io/install.sh | sh - |
Windows(使用PowerShell):
1 | iwr https://get.pnpm.io/install.ps1 -useb | iex |
然後就可以使用 pnpm env 指令来安装 Node.js。
Homebrew安裝
在沒有預先安裝 node.js 的環境下,如果要使用 pnpm env
來管理 node 版本,不適合使用 Homebrew 安裝 pnpm,新系統也不適合,因為系統需要先有 node 環境才可以執行 pnpm 的 CLI,否則會出現 env: node: No such file or directory
的訊息。
而我的情況是,因為已經先把 nvm 移除掉了,系統中已經沒有 node 環境了,除非要先把 pnpm env
的 node 環境安裝好,才將 nvm 移除。
Homebrew:
1 | brew install pnpm |
pnpm env取代nvm
管理 node.js 執行環境
use
安裝並使用指定版本的 Node.js。
安裝LTS版本的 Node.js:
1 | pnpm env use --global lts |
安裝指定版本:
1 | pnpm env use --global 14 |
remove, rm
移除特定的 Node.js 版本。
1 | pnpm env remove --global 14.0.0 |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 NeiLの不負責筆記!
評論