Getting started with n (node version management)

When it comes to installing and managing your versions of Node and npm, I recommend using the n version manager. For the purposes of this post, n will enable us to:

The main benefit to installing Node within your home directory instead of /usr/local/bin is the prevention of potential permissions errors and/or having to use sudo to run Node or npm.

With the ability to install multiple versions, you will be able to maintain older projects that might rely on an earlier version of Node.

Installing n

Complete documentation of these steps can also be found within the project's official GitHub repo.

If you already have npm installed:
You can install n using the following command:

npm install -g n

If you don't already have npm installed:
You can use curl to grab a copy of n and get started.

First, let's cd into our home directory and get a copy of n:
cd ~
curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n

Setting home directory for installation:
Next, let's (temporarily) set a location for n to install Node/npm:

Note: this won't persist to a new terminal instance, so this line will also need to be added to your .bashrc or .zshrc file, depending on your default shell. See the "Set the PATH" section in this post for more details.

export N_PREFIX=$HOME/.n

Finally, let's install the lts version of Node into the home directory location set in the previous step. This uses the bootstrap file named n that was previously downloaded using the curl script:

bash n lts

Based on the N_PREFIX value set above, this will install the lts version of Node into $HOME/.n.

Set the PATH

In order for n to be discoverable by the PATH for future terminal instances, add the following lines to your shell's configuration file (such as .bashrc or .zshrc):

export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH

To test out whether the n command has been correctly added to the PATH, restart your terminal and run the n list command to see a list of your installed versions of Node.

If you're having trouble, please double check whether the export lines were added to your shell's config file. Also, check whether the path to your n installation exists in the PATH:

echo $PATH

Refer to the official docs for further details and troubleshooting with getting the n command up and running.

Installing other versions of Node

So far, we've installed the lts version of Node and npm. Let's install the latest version:

n install latest

Verify that the latest version of Node and npm were installed:

node -v
npm -v

Now that we have more than one version of Node installed (lts and latest), we can switch between them by typing n in the command line and pressing enter. Follow the prompts to switch to a different version!

Conclusion

After setting up n, you are now able to install as many versions of Node and npm as you need for different projects. Try experimenting with the latest versions of Node as they are released. You can always roll back to a more stable version if the latest is incompatible with your projects.

Make sure and check out the official GitHub repo for the project for complete documentation and more!