NVM (Node Version Manager) is the best way to run multiple versions of NodeJS on the same machine.
It's not only for Windows but in this post I will talk about my experience to install NVM on a Windows machine without Admin Rights.
Why? Because at work I have a very restricted access to the operative system and on what can I do on my PC.
Download NVM for Windows
NVM for Windows is an opensource project mantained by the community to install and manage multiple versions of NodeJS on Windows.
You can find the latest releases at this link.
At the moment, the latest version is 1.1.9.
For this special case you can download the file nvm-noinstall.zip.
Extract the zip file into your favorite folder for this kind of tool.
On my machine I have a main folder called "tools" on my root with other tools as well, like ngrok or screentogif.
For instance, you can extract the files into the folder c:\tools\nvm.
Add the environment variables
From the System Properties of your machine, click on the button "Environment Variables".
Add two environment variables, the first one, called NVM_HOME and this is the patch of NVM. In our case is c:\tools\nvm.
The other variable is called NVM_SYMLINK and it must be a directory should not exists, like c:\tools\nvm\nodejs.
Now you can update the Patch value with the two new values: %NVM_HOME%;%NVM_SYMLINK%
If you want you can create a file called "settings.txt" in the nvm directory and it uses that file like User Environment Variables.
It prevents to restart the machine but it's not mandatory.
The example below is the content of my settings.txt file.
As you can see contains the same parameters values of the environment variables.
root: C:\tools\nvm
path: C:\tools\nvm\nodejs
arch: 64
proxy: none
Launch NVM
Now you are ready to launch and use NVM on your machine.
Open your favorite terminal application and type "nvm".
If everything is configured well, you should see a screen like this one below.
Top comments (13)
This worked for me. Thank you! One additional step I needed was to add my Dev group to the Create Symbolic Links local policy. Found here: Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment -> Create Symbolic Links
Without this, the version switch wouldn't work. I configured it in a domain GPO
nvm use
will still fail because you do not have admin rights.To circumvent this, update the
NVM_SYMLINK
environment variable fromC:\tools\nvm\nodejs
toC:\tools\nvm\v20.12.2
. (I'm using Node v20.12.2, if you're using a different version, then the folder name will be different.) (You will need to close and reopen the command prompt after changing the env var.)Further details:
The
nvm use
command basically just changes theNVM_SYMLINK
env var to the name of the folder containing the desired version of Node. It is trying to change the system-level env var, but if you're following this article, you created it as a user-level env var.nvm
isn't smart enough to know that.I have tried but for it to fully work, I think we need admin rights. After following the steps
nvm
command works but fails when I try to install node by usingnvm install latest
. I am getting the following error.C:\dev-tools\nvm could not be found or does not exist. Exiting.
Downloading node.js version 16.15.1 (64-bit)...
Error while creating C:\dev-tools\nvm\v16.15.1\node.zip - open C:\dev-tools\nvm\v16.15.1\node.zip: The system cannot find the path specified.
Could not download node.js v16.15.1 64-bit executable.
Is this something you have also come across?
Did you try to remove the - symbol in the folder name?
I haven't yet. Will try and let you know. Thanks for the suggestion.
Have you got the fix
Thanks, working perfect here ;)
I guess we all know you are referecing "Path" variable and not "Patch" in here :
Managed to get temp admin to add System Properties. npm install lts and latest worked fine too. However, why do I need admin right when setting the current node version? nvm use ... requires admin login?
this wont work because symlink require admin rights to work
I get the following error when I try
nvm use 6.11.0
:exit status 1: You do not have sufficient privilege to perform this operation.
Doesn't work for me, first off I can't edit system environment variables without admin rights.
Nice tutorial I use it on macOS. So much better for doing development because you can switch versions on the fly.
in Windows as well... if you have a "normal" account.