Download Details
- Version
- 26.12.1 (latest)
- File size
- 35.23 MB
- License
- Free
- Security scan
- VirusTotal: 62 of 62 engines say OK (0 flagged)
- SHA-256 checksum
f32a2844504ed8d73449ddb480385f69cb436bc9409a89e2049ae83447078457- Developer
- OpenJS
- Supported OS
- Windows 11, Windows 10
- Installers
- 64-bit (x64), ARM (Arm64), Offline
- Downloads
- 7220
- Rating
- 4.7 out of 5 · 38 reviews
- File name(s)
- node-v26.12.1-x64.msi, node-v26.12.1-arm64.msi
Reviewed by Mohamed Zaki
Tested on Windows 11 and 10 · · How we review
Screenshots
Node.js lets you run JavaScript outside the browser, so one language covers both the front end and the back end. It is a free, open-source runtime for building web servers, APIs, scripts and developer tools.

It suits web developers, students learning JavaScript and anyone whose project tools (React, Vue, Vite and many others) need it installed first.
If you write JavaScript at all on Windows, it is worth having. Just keep CPU-heavy number crunching in another tool.
What is Node.js?
Node.js is a JavaScript runtime built on the V8 engine, the same engine that runs JavaScript in Chrome. It lets your code run on your own machine or a server instead of inside a web page.
You use it to build web servers, REST APIs, command line tools and automation scripts. Many front-end tools also run on it behind the scenes.
One JavaScript codebase from browser to server
The biggest draw is sharing one language across the whole project. Validation rules, data models and helper functions can live in one place and be used on both sides.
The downside is that JavaScript’s loose typing can hide bugs in larger projects. Tip: if your app is growing, add TypeScript early rather than late.
The event loop: how one thread serves many connections
Node.js runs your code on a single main thread and hands slow work, such as file reads or network calls, to the system. While it waits, the event loop keeps serving other requests.
This is why it handles chat apps, APIs and streaming well. It also means one blocking function can freeze everything, so avoid long synchronous loops in request handlers.
npm comes in the box
The installer includes npm, the package manager, so you can pull in libraries right away. Its registry is one of the biggest in software, which means a package exists for almost every task.
That size cuts both ways. Quality varies, and every dependency is code you are trusting, so check download counts and maintenance before adding one.
Tip: run npm audit now and then to see known issues in your dependencies.
Worker threads and the CPU-heavy limit
Image processing, large data transforms and heavy math can block the main thread. Worker threads let you move that work to separate threads so the app stays responsive.
They add some complexity, though. If your project is mostly number crunching, a language built for that may fit better.
Built-in tools that cut down on extras
Recent LTS releases include a test runner, a watch mode that restarts your script when files change, and a built-in fetch for HTTP requests. For small projects this means fewer packages to install.
Tip: use node --watch app.js during development instead of adding a restart tool.
Keeping an app running with PM2
PM2 is a process manager that restarts a crashed Node.js app, keeps logs and can run several instances. It is aimed at servers, and on Windows it is mostly useful for testing a setup before deploying.
For a production service, check what your hosting platform already provides before adding it.
LTS or Current: choosing a release line
LTS releases get long-term support and bug fixes, which makes them the safe default for apps and learning. Current releases bring new features sooner but are supported for a shorter time.
Pick LTS unless you need a feature that has not reached it yet.
Running several Node.js versions side by side
Different projects sometimes need different releases. The installer keeps one global version, so tools such as fnm or nvm-windows are the usual answer.
Install the version manager first, then add Node.js through it, to avoid PATH conflicts with an existing MSI install.
Is Node.js safe to install?
The installer checked with VirusTotal and came back clean. The software is maintained by the OpenJS and Node.js community and is open source, so its code can be inspected.
Risk comes mainly from the packages you add through npm, not the runtime itself. Install only what you need and keep dependencies updated.
When a command line runtime is the wrong thing to install
If you only want to browse the web or run ordinary desktop software, you do not need it. It is a developer tool with no window, run from the command line.
Skip it as the main engine for heavy scientific computing or video encoding as well, where other languages do the job better.
How to Download & Install
Click the download button at the top of this page to get the MSI installer for Windows. It is a standard offline installer, so you can run it without a connection once it is saved.
Follow the steps below, they match the screenshots one by one.
Step 1: Click the download button at the top of this page and choose the 64-bit installer, or the ARM64 one if your PC runs Windows on ARM.

Step 2: Open the installer, tick the box to accept the license agreement and press Next.

Step 3: Keep the default destination folder or pick another one, then press Next.

Step 4: On the Custom Setup screen, choose which features to install. The defaults include the runtime, npm and the PATH entry, so most people just press Next.

Step 5: The Optional Tools screen offers an extra checkbox for tools that compile native modules. Leave it unticked unless you build such packages, then press Next.

Step 6: Press Install and confirm the Windows permission prompt if it appears.

Step 7: Press Finish to close the setup wizard.

Step 8: Open a new Command Prompt window and type node -v. If a version number appears, the installation worked.

Which installer should you pick?
- 64-bit (x64): the right choice for most Windows 10 and Windows 11 PCs.
- ARM64: for Windows on ARM devices.
Both are offline MSI installers, so there is no separate web installer to worry about.
System requirements
- Windows 11 or Windows 10
- 64-bit (x64) or ARM64 processor
- Admin rights for a system-wide install
License
Node.js is free and open source under a permissive MIT-style license. You can use it for personal and commercial projects without activation or a key.
Installing from the command line
If you prefer a package manager, winget can install the LTS release with winget install OpenJS.NodeJS.LTS. Version managers such as fnm (winget install Schniz.fnm) are handy when you need to switch between releases.
How to update Node.js
Run the newer installer over your existing setup and it replaces the old runtime. Your projects stay where they are, but reinstall global npm packages if a tool misbehaves afterwards.
If you installed through winget or a version manager, update with the same tool.
Fixes for common install problems
- “node is not recognized”: close every terminal and open a new one, because old windows keep the old PATH. If it still fails, reinstall and keep the PATH feature ticked on the Custom Setup screen.
- “Running scripts is disabled” in PowerShell: PowerShell is blocking the npm script. Run
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedor use Command Prompt instead. - Native module build errors: some packages compile code during install. Rerun the installer and tick the optional tools checkbox, or install the build tools yourself.
Pros & Cons
What we liked
- Free and open source
- One language for front and back end
- Handles many connections efficiently
- npm included with the installer
- Huge package ecosystem and community
- Native ARM64 build available
What we didn't like
- Heavy CPU work needs worker threads
- npm package quality varies
- Command line only, no GUI
Best Node.js Alternatives
-
Unreal EngineA professional tool to make high-quality games and 3D experiences.
-
Git (Git Bash)Free version control with a Bash terminal for tracking code history.
Conclusion
4.7out of 5 · 38 user ratings
Node.js is not the only way to run JavaScript outside the browser. Newer runtimes target some of its weak spots.
The table shows what each one is best at, so you can match the tool to your project.
| App | Best For | Price | Platform | Standout Feature |
|---|---|---|---|---|
| Node.js | Web servers, APIs and tooling with the widest compatibility | Free | Windows, macOS, Linux | The largest package ecosystem through npm |
| Deno | Secure scripts and TypeScript-first projects | Free | Windows, macOS, Linux | Permission-based security and built-in TypeScript |
| Bun | Fast installs and an all-in-one toolchain | Free | Windows, macOS, Linux | Runtime, bundler and package manager in one tool |
Final verdict
Node.js remains the safest starting point on Windows. Most tutorials, tools and hosting platforms assume it, and the installer sets everything up in a few clicks.
Choose the LTS release for steady projects, and look at Deno or Bun only if you have a specific need they cover.
FAQ
Should I install the LTS or the Current release of Node.js?
Choose LTS for most work. It receives long-term fixes and is the release most tools and tutorials expect, while Current is meant for trying new features.
Does the Node.js installer include npm?
Yes, npm is installed together with Node.js. You do not need a separate setup for it.
How do I check that Node.js works on Windows 11?
Open Command Prompt or PowerShell and type node -v, then npm -v. If both print a version number, the install is working.
Why does Command Prompt say “node is not recognized”?
The terminal was opened before the install and still has the old PATH. Close it, open a new window and try again, or reinstall with the PATH feature enabled.
Does Node.js run natively on Windows on ARM?
Yes, there is an ARM64 installer for Windows on ARM devices. Pick it instead of the 64-bit x64 one.
Is Node.js free for commercial projects?
Yes, it is free and open source under a permissive license. You can use it in commercial products without paying or activating anything.
Can I keep several Node.js versions on one Windows PC?
Yes, with a version manager such as fnm or nvm-windows. It lets you switch releases per project without reinstalling.
Found a problem with this download? Report an outdated version, broken link, suspicious installer or incorrect information.
Changelog - What's new in version 26.12.1
This is a security release.Notable Changes
- (CVE-2026-106069, CVE-2026-106072) tls: reject non-canonical IP addresses (Matteo Collina) – High
- (CVE-2026-105482) dns: validate resolve inputs for null bytes (James M Snell) – High
- (CVE-2026-105483) tls: fix ip normalization regression (James M Snell) – High
- (CVE-2026-111497) src: expose BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH (Antoine du Hamel) – High
- (CVE-2026-111497) deps: brotli: cherry-pick 0ed4268a4401abcb44720963 (Evgenii Kliuchnikov) – High
- (CVE-2026-105481) http: ensure agent data guard works without I/O (James M Snell) – Medium
- (CVE-2026-106074) crypto: reset random caches across snapshots (Filip Skokan) – Medium
- (CVE-2026-106070) zlib: avoid caching invalid ZIP local headers (Matteo Collina) – Low
- (CVE-2026-106071) src: fix the fs permission tree node on wildcard nodes (James M Snell) – Low
- (CVE-2026-106073) permission: check permission model in realpathSync (RafaelGSS) – Low
- deps: V8: backport 93cd21e8254b (Joyee Cheung)
- crypto: update root certificates to NSS 3.131.1 (Antoine du Hamel)
- tls: reject chains containing blocked public keys (Ulises Gascon)
- deps: update c-ares to 1.34.9 (Node.js GitHub Bot)
- tools: retry Gatekeeper check and stapling after notarization (Ryan Aslett)
- crypto: harden X.509 conversion and formatting (Filip Skokan)
Commits
- [818e4ca061] - crypto: update root certificates to NSS 3.131.1 (Antoine du Hamel) #66877
- [fd3c87ed43] - crypto: harden X.509 conversion and formatting (Filip Skokan) nodejs-private/node-private#966
- [acffa610db] - crypto: reset random caches across snapshots (Filip Skokan) nodejs-private/node-private#987
- [7895a5cd2d] - deps: update undici to 8.12.2 (Node.js GitHub Bot) #66721
- [12daa54d2e] - deps: V8: backport 93cd21e8254b (Joyee Cheung) nodejs-private/node-private#999
- [6a8b3db7e2] - deps: update c-ares to 1.34.9 (Node.js GitHub Bot) #66868
- [a6040b50d9] - deps: brotli: cherry-pick 0ed4268a4401abcb44720963 (Evgenii Kliuchnikov) nodejs-private/node-private#1002
- [6b78ea171d] - dns: validate resolve inputs for null bytes (James M Snell) nodejs-private/node-private#984
- [0683ee5f7d] - http: ensure agent data guard works without I/O (James M Snell) nodejs-private/node-private#983
- [e5cae10148] - Revert "module: synchronously load most ES modules" (Antoine du Hamel) #66786
- [cc244131aa] - permission: check permission model in realpathSync (RafaelGSS) nodejs-private/node-private#973
- [0392385841] - src: expose BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH (Antoine du Hamel) nodejs-private/node-private#1002
- [c273a408c9] - src: fix the fs permission tree node on wildcard nodes (James M Snell) nodejs-private/node-private#986
- [a2caddd20e] - tls: reject chains containing blocked public keys (Ulises Gascon) #66871
- [ad788ccd07] - tls: reject non-canonical IP addresses (Matteo Collina) nodejs-private/node-private#982
- [cd4b05469c] - tls: fix ip normalization regression (James M Snell) nodejs-private/node-private#985
- [5fa440e0d7] - tools: retry Gatekeeper check and stapling after notarization (Ryan Aslett) #66855
- [745ad77156] - zlib: avoid caching invalid ZIP local headers (Matteo Collina) nodejs-private/node-private#981

IrfanView
PotPlayer
Google Chrome