Featured image of post 在 MacOS 使用 nvm 安装 Node 环境

在 MacOS 使用 nvm 安装 Node 环境

要如何在 MacOS 使用 nvm 去管理开发的 Node.js 程式版本

在 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
All rights reserved,未經允許不得隨意轉載
Built with Hugo
主题 StackJimmy 设计