How to Install Node.js on Windows

Short answer: open PowerShell and run one command — glue install nodejs-lts (or winget install OpenJS.NodeJS.LTS). Both need no manual PATH edits and can be uninstalled cleanly. Glue can also lock your Node version with glue hold, so bulk updates never break your team's runtime. npm ships with Node.js in every method.

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

Loading…