nvm-rust 0.2.0

A node version manager that doesn't suck
nvm-rust-0.2.0 is not a library.

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:

  • 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?).

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