在 Mac 开发 Node.js 程式时可以使用 NVM 来管理 Node.js 的版本,可以针对不同的专案需求去做简单的 Node.js 版本切换
安装 NVM
执行 curl 指令进行安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
设定 NVM 环境变数
Terminal 的设定档案通常会放在 ~/.bash_profile
、~/.zshrc
、~/.profile
、~/.bashrc
档案中,在开启 Terminal 时会自动载入客製化设定,需要设定开启时去载入 NVM 的相关设定
预设在安装完成后会自动将 NVM 设定档案自动加入您的设定档案,若没有自动加入时则自行手动加入即可
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
安装时自动加入 NVM 设定档范例
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 14:44:48
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14984 100 14984 0 0 75848 0 --:--:-- --:--:-- --:--:-- 81879
=> Downloading nvm from git to '/Users/kj/.nvm'
=> Cloning into '/Users/kj/.nvm'...
remote: Enumerating objects: 348, done.
remote: Counting objects: 100% (348/348), done.
remote: Compressing objects: 100% (297/297), done.
remote: Total 348 (delta 39), reused 153 (delta 26), pack-reused 0
Receiving objects: 100% (348/348), 201.00 KiB | 2.16 MiB/s, done.
Resolving deltas: 100% (39/39), done.
=> Compressing and cleaning up git repository
=> Appending nvm source string to /Users/kj/.zshrc
=> Appending bash_completion source string to /Users/kj/.zshrc
=> 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
列出可安装的 Node.js 版本
使用 nvm ls-remote
即可列出所有目前可安装的 Node.js 版本
nvm ls-remote
列出 Node.js 版本范例
$ nvm ls-remote
v16.6.2
v16.7.0
v16.8.0
v16.9.0
v16.9.1
v16.10.0
v16.11.0
v16.11.1
v16.12.0
-> v16.13.0 (Latest LTS: Gallium)
v17.0.0
v17.0.1
安装指定版本 Node.js
使用 nvm install
指令即可指定安装 node.js 版本
nvm install <node-js-version>
NVM 安装 node.js 范例
$ nvm install v16.13.0
Downloading and installing node v16.13.0...
Downloading https://nodejs.org/dist/v16.13.0/node-v16.13.0-darwin-x64.tar.xz...
####################################################################################### 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v16.13.0 (npm v8.1.0)
Creating default alias: default -> v16.13.0
NVM 安装 Node.js 版本路径
使用 node -v
时可以看到已经安装完成的 v16.13.0
版本的 Node.js
$ node -v
v16.13.0
使用 which node
可以看到 Node.js 被安装在家目录中的 .nvm/versions/node/v16.13.0
目录中
$ which node
/Users/kj/.nvm/versions/node/v16.13.0/bin/node
所以当有不同的版本 Node.js 时,NVM 会将不同版本放到不同的目录中并作切换
列出目前 NVM 有安装的 Node.js 版本
使用 nvm ls
指令即可列出目前系统已安装的所有 node.js 版本
nvm ls
列出已安装已安装的所有 node.js 版本范例
$ nvm ls
-> v16.13.0
default -> v16.13.0
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.13.0) (default)
stable -> 16.13 (-> v16.13.0) (default)
lts/* -> lts/gallium (-> v16.13.0)
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.7 (-> N/A)
lts/fermium -> v14.18.1 (-> N/A)
lts/gallium -> v16.13.0
使用指定版本 Node.js
使用 nvm use
指令即可随时切换想要的 Node.js 版本
nvm use <node-js-version>
使用 nvm use
指令切换范例
$ nvm use v16.13.0
Now using node v16.13.0 (npm v8.1.0)
设定预设 Node.js 版本
因为透过 nvm 可以同时有多个 Node.js 版本在系统中,若常用的版本我会把他设定为预设使用的版本,若有要使用其他不同的版本时,我再做切换
使用 nvm alias default
指令即可设定预设的 node.js 版本
nvm alias default <node-js-version>
设定预设 node.js 版本范例
$ nvm alias default v16.13.0
default -> v16.13.0
参考资料
Donate KJ 贊助作者喝咖啡
如果這篇文章對你有幫助的話,可以透過下面支付方式贊助作者喝咖啡,如果有什麼建議或想說的話可以贊助並留言給我
If this article has been helpful to you, you can support the author by treating them to a coffee through the payment options below. If you have any suggestions or comments, feel free to sponsor and leave a message for me!
方式 Method | 贊助 Donate |
PayPal | https://paypal.me/kejyun |
綠界 ECPay | https://p.ecpay.com.tw/AC218F1 |
歐付寶 OPay | https://payment.opay.tw/Broadcaster/Donate/BD2BD896029F2155041C8C8FAED3A6F8 |