A POSIX-compliant bash script to manage multiple active Node.js versions via the command line.
nvm (Node Version Manager) is a version manager for Node.js that allows developers to install, switch between, and manage multiple Node.js versions on a single machine. It solves the problem of needing to test applications across different Node environments or work on projects with varying version requirements without requiring system-wide permissions.
Node.js developers working on multiple projects with different Node version requirements, or those who need to test applications across various Node.js releases. It is particularly useful for developers using POSIX-compliant shells (bash, zsh, dash, ksh) on Unix, macOS, or Windows WSL.
Developers choose nvm because it installs per-user without sudo access, integrates seamlessly with shell profiles, and supports project-specific version switching via .nvmrc files. Its reliability, simplicity, and focus on not interfering with system installations make it a preferred tool over manual version management.
Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Installs locally without sudo, avoiding system-wide conflicts and permission issues, as highlighted in its per-user design philosophy.
Supports .nvmrc files to automatically detect and switch Node versions per project directory, streamlining multi-project workflows.
Includes aliases for LTS versions, commands to list remote and local versions, and tools to migrate global packages between Node installations.
Allows installation from cached downloads using the --offline flag, useful for air-gapped or low-connectivity environments.
Lacks native support for Fish shell, requiring third-party plugins or workarounds, and has documented issues on non-standard shell setups.
Only works on Windows via WSL, Git Bash, or Cygwin, with no official native support, forcing users to seek alternatives like nvm-windows.
On Alpine Linux, nvm cannot use pre-compiled binaries and must compile from source, which is slower, error-prone, and version-restricted due to musl libc.