How to install Node.js using NVM on macOS M1
Published on Feb 6, 2022
4 min read
Updated on September 10, 2022
Node.js can be installed in different ways. I recently started working on an organization repository that requires using different Node.js versions. Using Node Version Manager (NVM) it is possible to switch between different Node.js versions on the fly. It also allows testing code with older Node.js versions.
NVM is a shell script used for installing and managing Node.js on a Unix based system. It allows switching between different versions of Node.js via the command line quickly. It also works with any POSIX shell such as
Make sure you have installed the following before proceeding:
Remove existing installed Node.js version🔗
This step is optional. If you haven't installed Node.js previously using Homebrew, skip this.
If you have an existing Node.js version installed, please remove it before installing NVM. For example, my machine already has a node version installed via Homebrew.
Open the terminal window and run:
brew uninstall --ignore-dependencies nodebrew uninstall --force node
Install NVM via Homebrew🔗
Install NVM using Homebrew:
brew install nvm
After the above command runs, create a directory for NVM at the home working directory:
When using the
zsh shell, add the following config inside
export NVM_DIR="$HOME/.nvm"[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
Now, either restart the terminal app or execute
source ~/.zshrc to re-load the latest config for the
zsh shell from the file.
Run the command
nvm --version to verify. For example, if the config has loaded, this command would display a version.
Install Node.js via NVM🔗
Node.js is available in two different versions:
- Long Term Support (LTS)
- Current with latest features
Although I used to love using the Current version with the latest features on my personal machine, I use the LTS version for work. At the time of writing this post, the current LTS version is
Running the command
nvm install node would install the current version with the latest features.
To install the current LTS Node.js version, execute:
nvm install --lts
Then, verify the version by running:
node --version# Output: v16.13.2
Multiple Node.js versions🔗
To install different versions of Node.js, you can run:
# nvm install Version-Numbernvm install 14
Use a specific Node.js version🔗
After installing multiple versions, use the command below to set a specific version as the default version and use it:
nvm use 16
Uninstall a Node.js version🔗
Before uninstalling a Node.js version, make sure it is not the active version or currently used version on the machine. Switch to a different version and then run the command:
nvm uninstall 14
List all installed Node.js versions🔗
To check for all the installed Node.js versions via nvm, run:
Set the latest Node.js version as the default🔗
To always set the latest Node.js version as the default in the shell, run:
nvm alias default node
Update to the latest version🔗
To update to the latest version
nvm provides the following command:
nvm install --lts
After installing the latest version, to re-install any global packages installed with the previous version, run:
nvm install [version from the latest install] --reinstall-packages-from=[previous version]
Browse all posts
I'm a software developer and a technical writer. In this blog, I write about Technical writing, Node.js, React Native and Expo.
Currently, working at Expo. Previously, I've worked as a Developer Advocate, and Senior Content Developer with companies like Draftbit and Vercel.