Manage Multiple Nodejs Versions on Windows OS
Tags: node, bash, javascript, webdev
Published: 2023-05-01 09:43:54

Recently, I encountered a problem requiring me to downgrade my machine’s Node version. Downgrading or upgrading the Node version is simple, but it’s cumbersome to keep doing that anytime there’s a need for it.

So what if there’s a way to have multiple Node on your PC and all you have to do is switch to any version compatible with what you want to do.

If you’re thinking of a possible way to install and switch between different node.js version on your Windows-powered PC, this article will guide you.

> NOTE: This method will only work on Windows-powered devices, also Mac and Linux devices have similar steps.

So, let’s start!


## Step 1: Uninstall Node.js

If you already have a particular Node version installed, go to your PC’s cPanel to uninstall it. 

Here is how:
- Click the start button, and search for “Control Panel.”
- Under Program, click “Uninstall program.”
- A new page with all your installed programs will appear, find Nodejs and uninstall it.

Go to your file explorer >> PC >> Users >> {username} >> Program Files, ensure there is no **Nodejs** folder here, if there is any, delete it permanently.

You may need to restart your system to complete the process.

## Step 2: Install NVM - Node Version Manager

NVM is a tool that allows you to easily install and manage multiple versions of Node.js on your computer. With NVM, you can switch between different versions of Node.js with just a few commands, making it easier to test your code on different versions or use different versions for different projects.


To install NVM, you can [go to this download page on GitHub](https://github.com/coreybutler/nvm-windows/releases) and follow the installation guide.

But to save you time, let’s install using the bash command.

Download a bash terminal, for instance, [Git Bash](https://gitforwindows.org/), and install it. 

Open your Git Bash terminal and put in this code: 

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

You can change the version. E.g., you can use v1.11 instead of v0.39.0 but this work for me perfectly while the latter is the latest as of the time of writing this.

Once it’s done installing, close the bash terminal and open it again.

Run `nvm` to see the list of NVM commands.

If you see the list, good, you can skip the next step but if see like error:

```bash
bash: nvm: command not found.
```

Don’t worry, let’s fix it in the next step.

## Step 3: Configure Terminal to Use NVM


First thing, let’s confirm if `NVM` has been installed successfully, run this command:

```bash
cat ~/.bashrc
```

This command is checking if there’s bash configuration, since you can’t use `nvm`, I expect you to see something like this:

```bash
$ cat ~/.bashrc
cat: /c/Users/solga/.bashrc: No such file or directory
```

This confirms our curiosity. Now, let’s create a `.bashrc` directory and configure it.

Run these commands in order:

-  `touch .bashrc` - This will create a file with bashrc extension (You can’t see it)
- `nano .bashrc` - This will open the file for editing

Now put this configuration there:

```bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
```

Press `Ctrl + X` to save the file.
Press `Ctrl + Z` to close the file.

Now we have bash configured. We can use NVM now.

Run `nvm` again, now you should see the list of NVM commands. 


![NVM command list](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mgccsamz40m30xr7a80.png)

To check the current version of `nvm` you have, run `nvm --version`

Let’s install Nodes.


## Step 4: Install different Node versions

To install any node version, simply run `nvm install <version>`

For example:

```bash
nvm install 12.4.0
```

This will install Nodejs version 12.4. And you can install more versions by using the same syntax above. 


## Step 5: Switching and using a Node version

To use any node version, simply run `nvm use <version>`

E.g 

```bash
nvm use 12.5.8
```

Note that you must have installed the node version you want to use with NVM. To see the list of your installed nodejs versions, run `nvm ls`.

If you need to switch to a different version of Nodejs, you can always do that.

> Note: If you use `yarn` to manage node packages, you have to install it again but if you use `npm`, you have nothing to worry about.

To install `yarn`, run this:

```bash
npm i -g yarn
```

This will install `yarn` globally on your system.

So that's it!

If you have any questions or would like to make a correction, feel free to do that as I'm open to learning too.

PS: I'm a frontend engineer and I'm available to work (remotely) either as a frontend engineer or technical writer. Send me an email at (hello{at}stephengade.com).

Thanks for reading.