Install and Use Node Version Manager (NVM) on macOS

Node Version Manager (NVM) is a tool that allows you to install and manage multiple versions of Node.js on your machine. It's useful when you work on various projects that use different Node.js versions.

This article teaches you how to install it on macOS and the most common & useful NVM commands.

1. Install Node Version Manager on macOS

There are 3 ways to install Node Version Manager. You can use the cURL and wget commands or Homebrew.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

// or

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

Running any of the above commands starts the installation process. The process consists in:

  • downloading and running the NVM script
  • cloning the NVM repository to your machine in the root directory (~/.nvm)
  • adding a script in the profile file (.zprofile, .bashrc, .bash_profile, .profile or .zshrc)

If you decide to use Homebrew, make sure that you have it installed on your machine before running the following command:

brew install nvm

Whichever option you decide to use accomplishes the same thing. Though, it's important to mention that you need to do a little more work if you choose Homebrew.

2. Usage

If you used the cURL or wget command, restart the terminal to start using NVM. Or you can run the following command to use NVM without restarting the terminal:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

A screenshot of the terminal when installing the Node Version Manager on macOS

You are done and ready to use the NVM!

Homebrew Node Version Manager Installation

If you used Homebrew, there are some additional steps you need to perform. Firstly, create the .nvm directory:

mkdir ~/.nvm

Then add the following script to your profile file:

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

Lastly, restart the terminal or execute the newly added script as follows:

source your_profile_file (.zprofile, .bashrc, .bash_profile, .profile or .zshrc)

You are done, and you can start using the Node Version Manager!

3. Node Version Manager Terminal Commands

Now that you have Node Version Manager installed, it's time to learn some of the most common commands.

Check all available Node versions

The following command lists all the Node versions available for download:

nvm ls-remote

There are many Node versions available, so it will take a while until the command finishes.

Install a specific Node version

Once you decide on a specific version, you can install it as follows:

nvm install <node-version>

# example
nvm install 19.4.0

# another example
nvm install 18 // it installs the latest Node 18 version

Or, if you want to install the latest Node version, you can run:

nvm install node

Lastly, you can also install the latest LTS Node version as follows:

nvm install --lts

You have 4 ways of installing a Node version. Use the one that fits your needs and requirements!

List all Node versions installed on your machine

If you want to list all the Node versions installed on your machine, you can do it as follows:

nvm ls

Note: The above command lists only the Node versions installed on your machine, not the versions available for download.

Use a Node version

Once you know the Node version you want to use, you can use the following command to select it:

nvm use

# example
nvm use 18.13.0

Summary

The NVM tool provides an easy and efficient way of managing multiple Node.js versions. By the way, if you are looking to supercharge your Mac terminal, I wrote an article that helps you improve your terminal with iTerm2 + Oh-My-Zsh.