nvm(-rust)

Cross platform nvm that doesn't suck™

Feature Comparison

| | 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?

Range Matching

Allowing you to not have to write out the full versions when running a command.

For example:

Version files (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" } ... }

Installs 14.19.3 as of the time of writing

$ nvm install ```

The program will use the following file priority:

  1. package.json#engines
  2. .nvmrc
  3. .node-version
  4. .tool-versions from asdf

Default global packages