Node.js is the first thing many developers install on a new Windows machine — and the way you install it decides how the next year goes: how updates happen, whether node is on PATH, and how painful it is to switch versions for different projects.
This guide compares the four practical ways to install Node.js on Windows, then walks through each one. All four include npm.
Quick answer
- Glue (or Scoop):
glue install nodejs-lts— no admin rights, PATH handled automatically, one-command updates, and version locking built in (glue hold). - WinGet:
winget install OpenJS.NodeJS.LTS— built into Windows, but the MSI underneath still asks for elevation and reinstalling to update. - Official installer (MSI): download from nodejs.org — fine for a single machine, but every update means downloading and running a new installer with admin rights.
- nvm-windows: for switching between Node versions several times a day; needs admin rights for every version switch.
The four ways at a glance
| Glue / Scoop | WinGet | Official MSI | nvm-windows | |
|---|---|---|---|---|
| Admin rights | Not required | Usually (runs the MSI) | Required | Required |
| PATH configured | Automatically, via shims | By the installer | By the installer | On every nvm use |
| Update to a new Node | glue update nodejs-lts |
winget upgrade (re-runs installer) |
Download the new MSI | nvm install again |
| Switch versions | glue install nodejs-lts@24 + glue reset |
Limited | Reinstall | Built in — its main purpose |
| Installed to | %USERPROFILE%\.glue |
Program Files\nodejs |
Program Files\nodejs |
Per version under the nvm root |
Method 1 — Glue: one command, no admin rights
If you do not have Glue yet, install it first (a normal user PowerShell window, no administrator rights):
irm https://gluestick.sh/install.ps1 | iex
Then open a new terminal and install the Node.js LTS line:
glue install nodejs-lts
node --version
npm --version
That is the whole setup. Glue installs Node into your user profile (%USERPROFILE%\.glue), puts node, npm, and npx on PATH through native shims, and needs no elevation at any point.
Updates later are one command:
glue update nodejs-lts
Want the Current line instead of LTS? The nodejs package tracks it.
Node.js majors ship breaking changes on schedule, and "it worked on my machine" is rarely an acceptable answer. If your team standardizes on one Node major, do not rely on discipline alone — lock it:
glue install nodejs-lts@24 # install a specific major
glue hold nodejs-lts # lock it: glue update * now skips this package
The second line is the important one: with nodejs-lts on hold, glue update * updates everything else and leaves Node untouched — no accidental major upgrade in the middle of a sprint, and no half-upgraded team where one member quietly runs a different Node than CI.
When the team decides to move on:
glue unhold nodejs-lts # release the lock
glue update nodejs-lts # upgrade on your terms
And if an experiment left the package on an odd version, glue reset nodejs-lts returns it to its default version.
Method 2 — WinGet: built into Windows
WinGet ships with Windows 10 and 11, so there is nothing to install first:
winget install OpenJS.NodeJS.LTS
node --version
Simple — but note what happens underneath: WinGet downloads and runs the official MSI, which means a UAC prompt and an entry in Program Files. Updates work with winget upgrade, but they re-run the installer the same way, and keeping multiple Node versions side by side is not really what it is designed for.
Method 3 — The official MSI installer
The traditional route: download the LTS or Current installer from nodejs.org, run it, click Next a few times, done. The MSI configures PATH for you and includes npm.
It works — but the cost shows up later: every update means downloading a new MSI and re-running it with administrator rights, uninstalling is another wizard, and switching versions for different projects means uninstall/reinstall cycles.
Method 4 — nvm-windows: multiple versions daily
If you work on several projects pinned to different Node majors, nvm-windows exists for exactly that:
nvm install lts
nvm use 24.18.0
node --version
Each version lives in its own folder and nvm use flips a symlink — so switching is one command. The trade-offs: it needs administrator rights for the install and for every nvm use, and npm global packages do not carry over between Node versions.
Verify the install works
Whichever method you used, open a new terminal and check:
node --version
npm --version
If node is not recognized, the most common causes are an old terminal window (PATH changed after it opened — open a new one) or a machine that had Node installed by a different method earlier. On Glue, glue doctor checks the environment and glue path check verifies the shim registration for you.
Frequently asked questions
Does npm come with Node.js on Windows?
Yes, in all four methods. npm and npx ship inside the Node.js distribution, so installing Node is enough — there is no separate npm install step on Windows.
LTS or Current — which should I install?
LTS for production work and most people: it receives long-term support and is what CI and deploy targets expect. Current only if you need to test unreleased Node features. With Glue both are one command apart: glue install nodejs-lts or glue install nodejs.
Can I have multiple Node.js versions installed at once?
Yes. Glue installs versions side by side under its apps directory: glue install nodejs-lts@24 adds a specific version, glue reset nodejs-lts switches back to the default, and glue hold nodejs-lts keeps glue update * from touching it. nvm-windows is the alternative if you prefer flipping versions several times a day and accept the elevation prompts.
I already installed Node via the MSI. Can I switch to Glue?
Yes, and they do not conflict — Glue installs to its own root under your user profile. Uninstall the MSI version first if you want node to point to the Glue-managed one, then run glue install nodejs-lts and open a new terminal.
How do I uninstall Node.js?
With Glue: glue uninstall nodejs-lts — the package and its shims are removed, no registry leftovers. With WinGet or the MSI: winget uninstall OpenJS.NodeJS.LTS or the uninstall wizard from Apps & Features.
Conclusion
For most developers the package-manager route wins: one command, no admin rights, no PATH surgery, one-command updates. Glue adds version pinning and switching on top (glue hold, glue reset, nodejs-lts@24), so the setup you pick on day one keeps working as your projects change:
irm https://gluestick.sh/install.ps1 | iex
glue install nodejs-lts
node --version
Comments