Cross platform nvm that doesn't suck™
| | nvm-rust | nvm-windows | nvm | |-----------------------------------------------------------------------:|:---------------:|:---------------------------------------------------------:|:------------------------------------:| | Platforms | Win, Mac, Linux | Windows | POSIX | | Range matching | ✅ | ❌ | ✅ | | Version files | ✅ | ❌ | ✅ | | Default global packages | 🔧 | ❌ | ✅ | | Node <4 | ✅* | ✅ | ✅ | | Disabling nvm temporarily | ❌ | ✅ | ✅ | | Caching | ❌ | ❌ | ✅ | | Aliases | ❌ | ❌ | ✅ |
**not supported, might work?
Allowing you to not have to write out the full versions when running a command.
For example:
nvm install 12
will install the latest version matching 12
, instead of 12.0.0
.nvm install "12 <12.18"
will install the latest 12.17.x
version, instead of just giving you an error.nvm use 12
switch use the newest installed 12.x.x
version instead of 12.0.0
(and most likely giving you an error, who has that version installed?).package.json#engines
, .nvmrc
, .tool-versions
)If a version is not specified for the use
and install
commands nvm-rust will look for and parse any files containing Node version specifications amd use that!
nvm-rust handles files containing ranges, unlike nvm.
e.g.
``` // package.json { ... "engines": { "node": "^14.17" } ... }
$ nvm install ```
The program will use the following file priority:
package.json#engines
.nvmrc
.node-version
.tool-versions
from asdf