A node.js version management utility for Windows. Ironically written in Go.
NVM for Windows is a node.js version management utility designed to simplify Node.js development on Windows. It allows users to easily install, switch between, and manage different versions of Node.js, ensuring compatibility and flexibility in their projects.
Key Features:
Seamless Installation & Switching: Effortlessly install multiple Node.js versions and switch between them with a single command.
Compatibility with npm & yarn: Supports the use of npm and yarn, enabling developers to manage project dependencies seamlessly.
Lightweight & Fast: Built in Go for optimal performance, ensuring quick installation and version management.
Command-Line Interface (CLI): Offers a straightforward CLI experience for efficient workflow integration.
Integration with winget: Can be installed via the winget package manager, streamlining setup on Windows systems.
Audience & Benefit:
Ideal for developers, DevOps engineers, and power users who work with Node.js and require flexibility in managing multiple versions. NVM for Windows helps maintain a clean development environment by isolating project dependencies and preventing version conflicts.
README
Notice: We are working full time work on Runtime, the successor to NVM for Windows.
The Microsoft/npm/Google recommended Node.js version manager for Windows.
This is not the same thing as nvm! (expand for details)
The original nvm is a completely separate project for Mac/Linux only. This project uses an entirely different philosophy and is not just a clone of nvm. Details are listed in Why another version manager? and what's the big difference?.
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Process Lasso is Windows process automation and optimization software. From tuning algorithms like ProBalance to user-created rules and persistent settings such as CPU affinities and priority classes, Process Lasso enables you full control over running applications!
Our famous ProBalance algorithm maintains system responsiveness during high CPU loads. This proprietary algorithm dynamically adjusts the priorities of running programs so that some are given higher priority access to the CPU(s) than others. With ProBalance, no longer will single, or multiple, processes be able to bring your system to a virtual stall. Process Lasso will let you keep interacting with your computer, even when it is under a heavy CPU load. Try our CPUEater Demo to experience ProBalance for yourself.
Process Lasso also allows users to automate and tweak how applications are run through a number of unique and helpful functions. These include persistent priority classes, persistent CPU affinities, disallowed processes, per-process power profiles, a process watchdog for advanced rules, process instance count limits, instance or app balancing and much more! These features give you the ability to control how programs utilize your computer’s resources based on automatically applied settings. With Process Lasso, you can decide exactly how you want your processes to run.
Many additional functions such as power plan automation, a system responsiveness metric and process activity logging are also available.
For minimal resource use, all algorithms and process rules are enforced by a stand-alone background service called the Process Governor. The GUI is entirely optional.
Directory Opus is a complete replacement for Explorer, with far more functionality than any other file manager available today.
With a flexible user interface and unbelievable configurability, you can tailor Opus to streamline your workflow.
- Dual panes, dual trees, multiple tabs.
- Filter, sort, group your folders. Label and rate your files.
- Queued file copies. Powerful batch renaming. Full archive support.
- Find your files. Locate duplicates. Synchronize backups.
- Assign tags and descriptions. Convert images. Edit metadata.
- Fully multi-threaded, native 64 bit high performance code.
Opus is written in native C++ multi-threaded code; compiled for the latest 64 bit CPUs, with high performance our number one design principle.
Powerful searching, sorting, grouping, labelling and tagging features let you take control of your files like never before.
Work with third-party tools as easily as with the built-in features. A full scripting interface, including scriptable dialogs, means your imagination is really the only limit.
Try free for 30 days or Register for an extended 60 day trial.
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Process Lasso is Windows process automation and optimization software. From tuning algorithms like ProBalance to user-created rules and persistent settings such as CPU affinities and priority classes, Process Lasso enables you full control over running applications!
Our famous ProBalance algorithm maintains system responsiveness during high CPU loads. This proprietary algorithm dynamically adjusts the priorities of running programs so that some are given higher priority access to the CPU(s) than others. With ProBalance, no longer will single, or multiple, processes be able to bring your system to a virtual stall. Process Lasso will let you keep interacting with your computer, even when it is under a heavy CPU load. Try our CPUEater Demo to experience ProBalance for yourself.
Process Lasso also allows users to automate and tweak how applications are run through a number of unique and helpful functions. These include persistent priority classes, persistent CPU affinities, disallowed processes, per-process power profiles, a process watchdog for advanced rules, process instance count limits, instance or app balancing and much more! These features give you the ability to control how programs utilize your computer’s resources based on automatically applied settings. With Process Lasso, you can decide exactly how you want your processes to run.
Many additional functions such as power plan automation, a system responsiveness metric and process activity logging are also available.
For minimal resource use, all algorithms and process rules are enforced by a stand-alone background service called the Process Governor. The GUI is entirely optional.
Directory Opus is a complete replacement for Explorer, with far more functionality than any other file manager available today.
With a flexible user interface and unbelievable configurability, you can tailor Opus to streamline your workflow.
- Dual panes, dual trees, multiple tabs.
- Filter, sort, group your folders. Label and rate your files.
- Queued file copies. Powerful batch renaming. Full archive support.
- Find your files. Locate duplicates. Synchronize backups.
- Assign tags and descriptions. Convert images. Edit metadata.
- Fully multi-threaded, native 64 bit high performance code.
Opus is written in native C++ multi-threaded code; compiled for the latest 64 bit CPUs, with high performance our number one design principle.
Powerful searching, sorting, grouping, labelling and tagging features let you take control of your files like never before.
Work with third-party tools as easily as with the built-in features. A full scripting interface, including scriptable dialogs, means your imagination is really the only limit.
Try free for 30 days or Register for an extended 60 day trial.
<h3>Seeking Feedback:</h3>
We're working on <a href="https://github.com/coreybutler/nvm-windows/wiki/Runtime">Runtime (rt)</a>, the successor to NVM For Windows. Please contribute by taking a minute to complete <a href="https://t.co/oGqQCM9FPx">this form</a>. Thank you!
<h3></h3>
Overview
Manage multiple installations of node.js on a Windows computer.
tl;dr Similar (not identical) to nvm, but for Windows. Has an installer. Download Now!
This has always been a node version manager, not an io.js manager, so there is no back-support for io.js. Node 4+ is supported. Remember when running nvm install or nvm use, Windows usually requires administrative rights (to create symlinks). To install the latest version of Node.js, run nvm install latest. To install the latest stable version, run nvm install lts.
There are situations where the ability to switch between different versions of Node.js can be very useful. For example, if you want to test a module you're developing with the latest bleeding edge version without uninstalling the stable version of node, this utility can help.
Installation & Upgrades
:star: :star: Uninstall any pre-existing Node installations!! :star: :star:
The simplest (recommended) way to get NVM for Windows running properly is to uninstall any prior Node installation before installing NVM for Windows. It avoids all of the pitfalls listed below. However; you may not wish to nuke your Node installation if you've highly customized it. NVM for Windows can assume management of an existing installation, but there are nuances to this (dependent entirely on the permissions of the user running the installation). If you have an administrative account, it's relatively safe to install NVM for Windows before uninstalling the original Node version. If you are working in a closed environment, such as a corporate Active Directory environment where installations/uninstallations are controlled by group policy, you should really consider removing the original version of Node before installing NVM4W.
Permission Problems
For security reasons, Windows will not allow an application from one vendor to "uninstall" an application from a different vendor. The official NVM4W installer will attempt assume management of an existing installation of Node., but it cannot actually uninstall the original Node.js version. To work around this, NVM for Windows installer attempts to copy the original Node.js installation files to the NVM root. This includes global npm modules and configurations. Once this process is complete, the original Node.js installation can be uninstalled without losing data.
PATH Installation Problems
If you attempt to configure the NVM_SYMLINK to use an existing directory (like C:\Program Files\nodejs), it will fail because a symlink cannot overwrite a physical directory. This is not a problem if you choose a different symlink path (such as C:\nvm\node).
PATH Conflicts
If you do not uninstall the original version, running nvm use may appear to do nothing at all. Running node -v will always show the original installation version. This is due to a PATH conflict that presents when the same application is installed multiple times. In NVM4W 1.1.11+, run nvm debug to determine if you have a PATH conflict.
For simpliciy, we recommend uninstalling any existing versions of Node.js before using NVM for Windows. Delete any existing Node.js installation directories (e.g., %ProgramFiles%\nodejs) that might remain. NVM's generated symlink will not overwrite an existing (even empty) installation directory.
:eyes: Backup any global npmrc config :eyes:
(e.g. %AppData%\npm\etc\npmrc)
Alternatively, copy the settings to the user config %UserProfile%\.npmrc. Delete the existing npm install location (e.g. %AppData%\npm) to prevent global module conflicts.
If NVM4W doesn't appear to work immediately after installation, restart the terminal/powershell (not the whole computer).
Reinstall any global utilities
After install, reinstalling global utilities (e.g. yarn) will have to be done for each installed version of node:
nvm use 14.0.0
npm install -g yarn
nvm use 12.0.1
npm install -g yarn
Upgrading nvm-windows
:bulb: As of v1.1.8, there is an upgrade utility that will automate the upgrade process.
To upgrade nvm-windows, run the new installer. It will safely overwrite the files it needs to update without touching your node.js installations. Make sure you use the same installation and symlink folder. If you originally installed to the default locations, you just need to click "next" on each window until it finishes.
Usage
nvm-windows runs in an Admin shell. You'll need to start powershell or Command Prompt as Administrator to use nvm-windows
NVM for Windows is a command line tool. Simply type nvm in the console for help. The basic commands are:
nvm arch [32|64]: Show if node is running in 32 or 64 bit mode. Specify 32 or 64 to override the default architecture.
nvm debug: Check the NVM4W process for known problems.
nvm current: Display active version.
nvm install [arch]: The version can be a specific version, "latest" for the latest current version, or "lts" for the most recent LTS version. Optionally specify whether to install the 32 or 64 bit version (defaults to system arch). Set [arch] to "all" to install 32 AND 64 bit versions. Add --insecure to the end of this command to bypass SSL validation of the remote download server.
nvm list [available]: List the node.js installations. Type available at the end to show a list of versions available for download.
nvm on: Enable node.js version management.
nvm off: Disable node.js version management (does not uninstall anything).
nvm proxy [url]: Set a proxy to use for downloads. Leave [url] blank to see the current proxy. Set [url] to "none" to remove the proxy.
nvm uninstall : Uninstall a specific version.
nvm use [arch]: Switch to use the specified version. Optionally use latest, lts, or newest. newest is the latest installed version. Optionally specify 32/64bit architecture. nvm use will continue using the selected version, but switch to 32/64 bit mode. For information about using use in a specific directory (or using .nvmrc), please refer to issue #16.
nvm root : Set the directory where nvm should store different versions of node.js. If `` is not set, the current root will be displayed.
nvm version: Displays the current running version of NVM for Windows.
Please note that any global npm modules you may have installed are not shared between the various versions of node.js you have installed. Additionally, some npm modules may not be supported in the version of node you're using, so be aware of your environment as you work.
:name_badge: Antivirus
Users have reported some problems using antivirus, specifically McAfee. It appears the antivirus software is manipulating access to the VBScript engine. See issue #133 for details and resolution.
v1.1.8 is not code signed, but all other versions are signed by Ecor Ventures LLC/Author.io. This should help prevent false positives with most antivirus software.
> v1.1.8+ was not code signed due to an expired certificate (see the release notes for reasons). v1.1.9 is code signed thanks to ajyong, who sponsored the new certificate.
Change GOARCH to amd64 in build.bat if you feel like building a 64-bit executable
Fire up a Windows command prompt and change directory to project dir
Execute go get github.com/blang/semver
Execute go get github.com/olekukonko/tablewriter
Execute build.bat
Check the distdirectory for generated setup program.
:bulb: Why another version manager?
There are several version managers for node.js. Tools like nvm and n
only run on Mac OSX and Linux. Windows users are left in the cold? No. nvmw and nodist
are both designed for Windows. So, why another version manager for Windows?
The architecture of most node version managers for Windows rely on .bat files, which do some clever tricks to set or mimic environment variables. Some of them use node itself (once it's downloaded), which is admirable, but prone to problems. Right around node 0.10.30, the installation structure changed a little, causing some of these to just stop working with anything new.
Additionally, some users struggle to install these modules since it requires a little more knowledge of node's installation structure. I believe if it were easier for people to switch between versions, people might take the time to test their code on back and future versions... which is just good practice.
:bulb: What's the big difference?
First and foremost, this version of nvm has no dependency on node. It's written in Go, which is a much more structured approach than hacking around a limited .bat file. It does not rely on having an existing node installation. Go offers the ability to create a Mac/Linux version on the same code base. In fact, this is already underway.
The control mechanism is also quite different. There are two general ways to support multiple node installations with hot switching capabilities. The first is to modify the system PATH any time you switch versions, or bypass it by using a .bat file to mimic the node executable and redirect accordingly. This always seemed a little hackish to me, and there are some quirks as a result of this implementation.
The second option is to use a symlink. This concept requires putting the symlink in the system PATH, then updating its target to the node installation directory you want to use. This is a straightforward approach, and seems to be what people recommend.... until they realize just how much of a pain symlinks are on Windows. This is why it hasn't happened before.
In order to create/modify a symlink, you must be running as an admin, and you must get around Windows UAC (that annoying prompt). Luckily, this is a challenge I already solved with some helper scripts in node-windows. As a result, NVM for Windows maintains a single symlink that is put in the system PATH during installation only. Switching to different versions of node is a matter of switching the symlink target. As a result, this utility does not require you to run nvm use x.x.x every time you open a console window. When you do run nvm use x.x.x, the active version of node is automatically updated across all open console windows. It also persists between system reboots, so you only need to use nvm when you want to make a change.
NVM for Windows comes with an installer, courtesy of a byproduct of my work on Fenix Web Server.
Overall, this project brings together some ideas, a few battle-hardened pieces of other modules, and support for newer versions of node.
NVM for Windows recognizes the "latest" versions using a list provided by the Node project. Version 1.1.1+ use this list. Before this list existed, I was scraping releases and serving it as a standalone data feed. This list was used in versions 1.1.0 and prior, but is now deprecated.
Motivation
I needed it, plain and simple. Additionally, it's apparent that support for multiple versions is not coming to node core. It was also an excuse to play with Go.
Why Go? Why not Node?
I chose Go because it is cross-platform, felt like less overhead than Java, has been around longer than most people think. Plus, I wanted to experiment with it. I've been asked why I didn't write it with Node. Trying to write a tool with the tool you're trying to install doesn't make sense to me. As a result, my project requirements for this were simple... something that's not Node. Node will continue to evolve and change. If you need a reminder of that, remember io.js, Ayo, all the breaking changes between 4.x.x and 6.x.x, and the shift to ES Modules in 12+. Change is inevitable in the world of software. JavaScript is extremely dynamic.
:pray: Thanks
Thanks to everyone who has submitted issues on and off Github, made suggestions, and generally helped make this a better project. Special thanks to
@vkbansal, who provided significant early feedback throughout the early releases.
FreeCommander is an easy-to-use alternative to the standard windows file manager. The program helps you with daily work in Windows. Here you can find all the necessary functions to manage your data stock. You can take FreeCommander anywhere – just copy the installation directory on a CD or USB-Stick – and you can even work with this program on a foreign computer.
FreeCommander is an easy-to-use alternative to the standard windows file manager. The program helps you with daily work in Windows. Here you can find all the necessary functions to manage your data stock. You can take FreeCommander anywhere – just copy the installation directory on a CD or USB-Stick – and you can even work with this program on a foreign computer.
Double Commander is a cross platform open source file manager with two panels side by side.
It is inspired by Total Commander and features some new ideas.
Double Commander is a cross platform open source file manager with two panels side by side.
It is inspired by Total Commander and features some new ideas.
Proton Pass is a free password manager with identity protection. It is used to securely store, share and auto-login to your accounts, using end-to-end encryption.
Proton Pass is a free password manager with identity protection. It is used to securely store, share and auto-login to your accounts, using end-to-end encryption.
Multi Commander is a multi-tabbed file manager and is an alternative to the standard Windows Explorer. It uses the very popular and efficient dual-panel layout.
Multi Commander has everything you need in your daily work with files to increase your speed and efficiency.
It has all the standard features that any file manager has, like copy, move, rename, view. But Multi Commander's big strengths are the special features that allow you to accomplish advanced tasks with ease. Tasks such as Auto-unpacking; Auto-sorting; Browsing inside archives; Editing the Windows Registry and accessing FTP; Searching for and Viewing files and pictures. There is also powerful, built-in Scripting support that allows you automate many tasks and expand its functionality. It allows you to do everything from the keyboard using shortcuts so that you can work quickly and efficiently.
Multi Commander is a multi-tabbed file manager and is an alternative to the standard Windows Explorer. It uses the very popular and efficient dual-panel layout.
Multi Commander has everything you need in your daily work with files to increase your speed and efficiency.
It has all the standard features that any file manager has, like copy, move, rename, view. But Multi Commander's big strengths are the special features that allow you to accomplish advanced tasks with ease. Tasks such as Auto-unpacking; Auto-sorting; Browsing inside archives; Editing the Windows Registry and accessing FTP; Searching for and Viewing files and pictures. There is also powerful, built-in Scripting support that allows you automate many tasks and expand its functionality. It allows you to do everything from the keyboard using shortcuts so that you can work quickly and efficiently.
CodeLite is an open source, free, cross platform IDE specialized in C, C++, PHP and JavaScript (mainly for backend developers using Node.js) programming languages which runs best on all major Platforms (OSX, Windows and Linux).
CodeLite is an open source, free, cross platform IDE specialized in C, C++, PHP and JavaScript (mainly for backend developers using Node.js) programming languages which runs best on all major Platforms (OSX, Windows and Linux).
Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ruby.
It is fast, lightweight, easy-to-use and easy-to-extend.
It is great for building and managing modern web applications.
It is focused on performance - designed around stability, simplicity, flexibility and freedom.
Laragon is very lightweight and will stay as lean as possible.
The core binary itself is less than 2MB and uses less than 4MB RAM when running.
Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ruby.
It is fast, lightweight, easy-to-use and easy-to-extend.
It is great for building and managing modern web applications.
It is focused on performance - designed around stability, simplicity, flexibility and freedom.
Laragon is very lightweight and will stay as lean as possible.
The core binary itself is less than 2MB and uses less than 4MB RAM when running.