If you build Node.js applications, you may end up needing to use different versions of Node. Fortunately, there is a convenient way to install and manage different versions thanks to Node Version Manager (nvm). nvm is a POSIX-compliant bash script to manage multiple active Node.js versions.
nvm will be the first project to enter the OpenJS Foundation’s incubation process after the merger of the JS Foundation and the Node.js Foundation. nvm is the most common and widely used method to install Node.js, and the most common tool to manage multiple installed Node.js versions.
nvm offers many benefits to help developers accomplish tasks in a more efficient way. Some of these advantages include:
- The ability to easily switch between node versions per-shell, which enables testing of both libraries, for maximum backwards compatibility, and apps, for smoother node upgrades on multiple node versions.
- The ability to install node on any posix-compliant system that has curl/wget
- Stores node versions, and thus globally installed modules, inside the user directory, removing the need for sudo when used with npm
- Handles compilation for most systems that don’t have prebuilt binaries available, simplifying the install process
- Provides the ease and convenience of a package manager without needing to obtain node from an unofficial distribution channel which cuts down on delays before newly released node versions are installable.
By joining the OpenJS Foundation, there are multiple organizational and infrastructure areas that will be better supported, helping both current users and future users including ensuring no single point of failure for the nvm.sh domain, GitHub repo, and more. Furthermore, nvm will be able to ensure governance and Code of Conduct enforcement to make sure that nvm will continue to be stable if there are personnel changes with the sole maintainer. Joining will also help nvm to grow and gain contributors, providing more overall stability for the project. If you are interested in getting involved, check out contributing guidelines on GitHub.
Quotes from the Community
“It’s great to have nvm join the OpenJS Foundation because it’s an important part of the overall ecosystem and a tool that makes Node.js version management easier for our users,” said Bethany Griggs, member of the Node.js Release Working Group and Node.js Project Technical Steering Committee. “nvm is a valuable tool that makes upgrading to new or switching between existing versions of Node.js much more simple. This is especially useful when developers are working on various projects that have different minimum required Node.js versions.”
“Having nvm enter into the incubation phase is an important and exciting milestone for the Cross Project Council and the OpenJS Foundation,” said Joe Sepi, CPC Chair. “As the first project, it shows forward progress and momentum. On behalf of the CPC, I look forward to nvm’s success as well as onboarding more projects crucial to the ecosystem”
“I’ve been a user of nvm since 2011, and it is the best way to install Node.js on a developer’s machine,” said Matteo Collina, Node.js Technical Steering Committee member, and Node.js CPC representative. “It’s fantastic to see new energy on the project, and I wish nvm a brilliant future in the OpenJS Foundation.”
Say Hi to nvm yourself
- Jordan Harband – nvm
- Jory Burson – OpenJSF CPC
#nvm on freenode IRC
- Main site, including Installation, Usage, Compatibility: https://github.com/nvm-sh/nvm
- License information: MIT https://github.com/nvm-sh/nvm/blob/master/LICENSE.md
- Issue tracker https://github.com/nvm-sh/nvm/issues
- Supported platforms: any POSIX-compliant shell: Linux, OS X, Windows WSL
nvm is joining the OpenJS Foundation as an incubating project, and upon successful completion of onboarding, it will become an “At-Large” project. An “At -Large” project is one which is “stable projects with minimal needs.”
Apply for Hosted Project Status at the OpenJS Foundation!
Projects hosted by the OpenJS Foundation fall into one of four categories:
- Impact stage is generally for large, mature projects.
- Growth stage is for projects which are actively mentored, and which intend to graduate to Impact stage.
- At-Large stage is for new projects, stable projects with minimal needs, and everything in between.
- Emeritus stage is for projects which have completed their lifecycle and are retired.
Read through the project lifecycle Project Progression proposal to find out how the OpenJS Foundation can best support your project, and apply today!