nvm 是 Node.js 的版本管理器,可在同一台主機上安裝多個版本的 Node.js 環境,因為不同專案可能會使用不同的 NodeJS 版本,nvm 可讓不同版本的 NodeJS 並存,且可以動態因應專案而切換。
安裝
nvm 是一個 shell script,不是執行檔,安裝也直接用 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
安裝即可
~$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14926 100 14926 0 0 37258 0 --:--:-- --:--:-- --:--:-- 38370
=> Downloading nvm from git to '/Users/charley/.nvm'
=> 正複製到 '/Users/charley/.nvm'...
remote: Enumerating objects: 347, done.
remote: Counting objects: 100% (347/347), done.
remote: Compressing objects: 100% (295/295), done.
remote: Total 347 (delta 39), reused 161 (delta 27), pack-reused 0
接收物件中: 100% (347/347), 196.36 KiB | 486.00 KiB/s, 完成.
處理 delta 中: 100% (39/39), 完成.
* (開頭指標分離於 FETCH_HEAD)
master
=> Compressing and cleaning up git repository
=> Appending nvm source string to /Users/charley/.bash_profile
=> Appending bash_completion source string to /Users/charley/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:
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
nvm 會安裝到 /Users/user/.nvm
使用者的 ~/.nvm
目錄中,同時將以下的環境變數增加到 profile 設定 ( ~/.bash_profile
、~/.zshrc
、~/.profile
或 ~/.bashrc
)
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
安裝後,可用以下指令確認安裝完成
command -v nvm
常用指令
版本號碼
$ nvm --version
0.38.0
ls
list 目前已經安裝的 nodejs
$ nvm ls
-> v14.17.5
default -> v14.17.5
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v14.17.5) (default)
stable -> 14.17 (-> v14.17.5) (default)
lts/* -> lts/fermium (-> v14.17.5)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.5 (-> N/A)
lts/fermium -> v14.17.5
list 遠端可安裝的 NodeJS 版本
nvm ls-remote
list 遠端可安裝的 NodeJS 版本,且限制 LTS 版本
nvm ls-remote --lts
install
安裝 NodeJS
nvm install v14.17.5
use
切換版本
nvm use v14.17.5
current
查詢目前版本
nvm current
run, exec
執行 NodeJS
nvm run node
執行特定版本的 node
nvm exec 12.8.1 node
which
查閱 nodejs 安裝路徑
$ nvm which v14.17.5
/Users/charley/.nvm/versions/node/v14.17.5/bin/node
alias
$ nvm alias
default -> v14.17.5
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v14.17.5) (default)
stable -> 14.17 (-> v14.17.5) (default)
lts/* -> lts/fermium (-> v14.17.5)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.5 (-> N/A)
lts/fermium -> v14.17.5
可以設定別名
nvm alias erbium v14.17.5
修改 default 版本
nvm alias default v14.17.5
npm
config
$ npm config ls
; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.14.14 node/v14.17.5 darwin x64"
; project config /Users/charley/.nvm/.npmrc
package-lock = false
; node bin location = /Users/charley/.nvm/versions/node/v14.17.5/bin/node
; cwd = /Users/charley/.nvm
; HOME = /Users/charley
; "npm config ls -l" to show all defaults.
list 所有設定
npm config ls -l
可修改 prefix, cache 路徑
npm config set prefix "/Users/charley/.nvm/versions/node/v14.17.5"
npm config set cache "/Users/charley/.npm"
安裝 npm 套件
npm install requirejs -g
npm install uglify-js -g
npm install less -g
套件會安裝到這個目錄
~/.nvm/versions/node/v14.17.5/lib/node_module
切換 NodeJS 版本時, npm library 也要重新安裝
.nvmrc
可在專案目錄中,建立一個 .nvmrc
檔案,裡面記錄 NodeJS 版本號碼
echo "14.17.5" > .nvmrc
echo "lts/*" > .nvmrc # to default to the latest LTS version
echo "node" > .nvmrc # to default to the latest version
切換到專案後,可以用 use 指令,直接切換專案的 NodeJS 版本
nvm use
nvm github 有記錄如何切換目錄後,自動切換 node 版本的 script,但目前覺得不需要那麼自動
沒有留言:
張貼留言