nvm

Node Version Manager - Simple bash script to manage multiple active node.js versions

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star half bd79095782ee4930099175e5ce7f4c89fa3ddabcd56fffcc7c74f6f2a2d46b27 (1 ratings)
Rated 4.5 out of 5
Subscribe to updates I use nvm


Statistics on nvm

Number of watchers on Github 25296
Number of open issues 233
Average time to close an issue 1 day
Main language Shell
Average time to merge a PR 4 days
Open pull requests 97+
Closed pull requests 64+
Last commit 8 months ago
Repo Created over 8 years ago
Repo Last Updated 8 months ago
Size 2.08 MB
Organization / Authorcreationix
Latest Releasev0.33.8
Contributors143
Page Updated
Do you use nvm? Leave a review!
View open issues (233)
View nvm activity
View on github
Latest Open Source Launches
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating nvm for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Node Version Manager Build Status nvm version CII Best Practices

Table of Contents

Installation

Install script

To install or update nvm, you can use the install script using cURL:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

or Wget:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

The script clones the nvm repository to ~/.nvm and adds the source line to your profile (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc).

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

You can customize the install source, directory, profile, and version using the NVM_SOURCE, NVM_DIR, PROFILE, and NODE_VERSION variables. Eg: curl ... | NVM_DIR=/usr/local/nvm bash for a global install. Ensure that the NVM_DIR does not contain a trailing slash.

NB. The installer can use git, curl, or wget to download nvm, whatever is available.

Note: On Linux, after running the install script, if you get nvm: command not found or see no feedback from your terminal after you type:

command -v nvm

simply close your current terminal, open a new terminal, and try verifying again.

Note: On OS X, if you get nvm: command not found after running the install script, one of the following might be the reason:-

  • your system may not have a [.bash_profile file] where the command is set up. Simply create one with touch ~/.bash_profile and run the install script again
  • you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry.

If the above doesn't fix the problem, open your .bash_profile and add the following line of code:

source ~/.bashrc

  • For more information about this issue and possible workarounds, please refer here

Verify installation

To verify that nvm has been installed, do:

command -v nvm

which should output 'nvm' if the installation was successful. Please note that which nvm will not work, since nvm is a sourced shell function, not an executable binary.

Important Notes

If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the build-essential and libssl-dev packages work.

Note: nvm does not support Windows (see #284). Two alternatives exist, which are neither supported nor developed by us:

Note: nvm does not support Fish either (see #303). Alternatives exist, which are neither supported nor developed by us:

  • bass allows you to use utilities written for Bash in fish shell
  • fast-nvm-fish only works with version numbers (not aliases) but doesn't significantly slow your shell startup
  • plugin-nvm plugin for Oh My Fish, which makes nvm and its completions available in fish shell
  • fnm - fisherman-based version manager for fish

Note: We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need patches; see the issue ticket:

Note: On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the Command Line Tools. You can check out this blog post on how to just that:

Note: On OS X, if you have/had a system node installed and want to install modules globally, keep in mind that:

  • When using nvm you do not need sudo to globally install a module with npm -g, so instead of doing sudo npm install -g grunt, do instead npm install -g grunt
  • If you have an ~/.npmrc file, make sure it does not contain any prefix settings (which is not compatible with nvm)
  • You can (but should not?) keep your previous system node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using /usr/local/lib/node_modules/* VS your user account using ~/.nvm/versions/node/vX.X.X/lib/node_modules/*

Homebrew installation is not supported. If you have issues with homebrew-installed nvm, please brew uninstall it, and install it using the instructions below, before filing an issue.

Note: If you're using zsh you can easily install nvm as a zsh plugin. Install zsh-nvm and run nvm upgrade to upgrade.

Note: Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, and git prior to v1.17.10 can not clone tags, so the minimum required git version is v1.7.10. If you are interested in the problem we mentioned here, please refer to GitHub's HTTPS cloning errors article.

Git install

If you have git installed (requires git v1.7.10+):

  1. clone this repo in the root of your user profile
    • cd ~/ from anywhere then git clone https://github.com/creationix/nvm.git .nvm
  2. cd ~/.nvm and check out the latest version with git checkout v0.33.8
  3. activate nvm by sourcing it from your shell: . nvm.sh

Now add these lines to your ~/.bashrc, ~/.profile, or ~/.zshrc file to have it automatically sourced upon login: (you may have to add to more than one of the above files)

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Manual Install

For a fully manual install, create a folder somewhere in your filesystem with the nvm.sh file inside it. I put mine in ~/.nvm and added the following to the nvm.sh file.

export NVM_DIR="$HOME/.nvm" && (
  git clone https://github.com/creationix/nvm.git "$NVM_DIR"
  cd "$NVM_DIR"
  git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin`
) && \. "$NVM_DIR/nvm.sh"

Now add these lines to your ~/.bashrc, ~/.profile, or ~/.zshrc file to have it automatically sourced upon login: (you may have to add to more than one of the above files)

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

Manual upgrade

For manual upgrade with git (requires git v1.7.10+):

  1. change to the $NVM_DIR
  2. pull down the latest changes
  3. check out the latest version
  4. activate the new version
(
  cd "$NVM_DIR"
  git fetch origin
  git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin`
) && \. "$NVM_DIR/nvm.sh"

Usage

To download, compile, and install the latest release of node, do this:

nvm install node

And then in any new shell just use the installed version:

nvm use node

Or you can just run it:

nvm run node --version

Or, you can run any arbitrary command in a subshell with the desired version of node:

nvm exec 4.2 node --version

You can also get the path to the executable to where it was installed:

nvm which 5.0

In place of a version pointer like 0.10 or 5.0 or 4.2.1, you can use the following special default aliases with nvm install, nvm use, nvm run, nvm exec, nvm which, etc:

  • node: this installs the latest version of node
  • iojs: this installs the latest version of io.js
  • stable: this alias is deprecated, and only truly applies to node v0.12 and earlier. Currently, this is an alias for node.
  • unstable: this alias points to node v0.11 - the last unstable node release, since post-1.0, all node versions are stable. (in SemVer, versions communicate breakage, not stability).

Long-term support

Node has a schedule for long-term support (LTS) You can reference LTS versions in aliases and .nvmrc files with the notation lts/* for the latest LTS, and lts/argon for LTS releases from the argon line, for example. In addition, the following commands support LTS arguments:

  • nvm install --lts / nvm install --lts=argon / nvm install 'lts/*' / nvm install lts/argon
  • nvm uninstall --lts / nvm uninstall --lts=argon / nvm uninstall 'lts/*' / nvm uninstall lts/argon
  • nvm use --lts / nvm use --lts=argon / nvm use 'lts/*' / nvm use lts/argon
  • nvm exec --lts / nvm exec --lts=argon / nvm exec 'lts/*' / nvm exec lts/argon
  • nvm run --lts / nvm run --lts=argon / nvm run 'lts/*' / nvm run lts/argon
  • nvm ls-remote --lts / nvm ls-remote --lts=argon nvm ls-remote 'lts/*' / nvm ls-remote lts/argon
  • nvm version-remote --lts / nvm version-remote --lts=argon / nvm version-remote 'lts/*' / nvm version-remote lts/argon

Any time your local copy of nvm connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under $NVM_DIR/alias/lts), are managed by nvm, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported.

Migrating global packages while installing

If you want to install a new version of Node.js and migrate npm packages from a previous version:

nvm install node --reinstall-packages-from=node

This will first use nvm version node to identify the current version you're migrating packages from. Then it resolves the new version to install from the remote server and installs it. Lastly, it runs nvm reinstall-packages to reinstall the npm packages from your prior version of Node to the new one.

You can also install and migrate npm packages from specific versions of Node like this:

nvm install 6 --reinstall-packages-from=5
nvm install v4.2 --reinstall-packages-from=iojs

Default global packages from file while installing

If you have a list of default packages you want installed every time you install a new version we support that too. You can add anything npm would accept as a package argument on the command line.

# $NVM_DIR/default-packages

rimraf
object-inspect@1.0.2
stevemao/left-pad

io.js

If you want to install io.js:

nvm install iojs

If you want to install a new version of io.js and migrate npm packages from a previous version:

nvm install iojs --reinstall-packages-from=iojs

The same guidelines mentioned for migrating npm packages in Node.js are applicable to io.js.

System version of node

If you want to use the system-installed version of node, you can use the special default alias system:

nvm use system
nvm run system --version

Listing versions

If you want to see what versions are installed:

nvm ls

If you want to see what versions are available to install:

nvm ls-remote

To restore your PATH, you can deactivate it:

nvm deactivate

To set a default Node version to be used in any new shell, use the alias 'default':

nvm alias default node

To use a mirror of the node binaries, set $NVM_NODEJS_ORG_MIRROR:

export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist
nvm install node

NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2

To use a mirror of the io.js binaries, set $NVM_IOJS_ORG_MIRROR:

export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist
nvm install iojs-v1.0.3

NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3

nvm use will not, by default, create a current symlink. Set $NVM_SYMLINK_CURRENT to true to enable this behavior, which is sometimes useful for IDEs. Note that using nvm in multiple shell tabs with this environment variable enabled can cause race conditions.

.nvmrc

You can create a .nvmrc file containing a node version number (or any other string that nvm understands; see nvm --help for details) in the project root directory (or any parent directory). Afterwards, nvm use, nvm install, nvm exec, nvm run, and nvm which will use the version specified in the .nvmrc file if no version is supplied on the command line.

For example, to make nvm default to the latest 5.9 release, the latest LTS version, or the latest node version for the current directory:

$ echo "5.9" > .nvmrc

$ echo "lts/*" > .nvmrc # to default to the latest LTS version

$ echo "node" > .nvmrc # to default to the latest version

Then when you run nvm:

$ nvm use
Found '/path/to/project/.nvmrc' with version <5.9>
Now using node v5.9.1 (npm v3.7.3)

nvm use et. al. will traverse directory structure upwards from the current directory looking for the .nvmrc file. In other words, running nvm use et. al. in any subdirectory of a directory with an .nvmrc will result in that .nvmrc being utilized.

The contents of a .nvmrc file must be the <version> (as described by nvm --help) followed by a newline. No trailing spaces are allowed, and the trailing newline is required.

Deeper Shell Integration

You can use avn to deeply integrate into your shell and automatically invoke nvm when changing directories. avn is not supported by the nvm development team. Please report issues to the avn team.

If you prefer a lighter-weight solution, the recipes below have been contributed by nvm users. They are not supported by the nvm development team. We are, however, accepting pull requests for more examples.

zsh

Calling nvm use automatically in a directory with a .nvmrc file

Put this into your $HOME/.zshrc to call nvm use automatically whenever you enter a directory that contains an .nvmrc file with a string telling nvm which node to use:

# place this after nvm initialization!
autoload -U add-zsh-hook
load-nvmrc() {
  local node_version="$(nvm version)"
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$node_version" ]; then
      nvm use
    fi
  elif [ "$node_version" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

License

nvm is released under the MIT license.

Copyright (C) 2010 Tim Caswell and Jordan Harband

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Running tests

Tests are written in Urchin. Install Urchin (and other dependencies) like so:

npm install

There are slow tests and fast tests. The slow tests do things like install node and check that the right versions are used. The fast tests fake this to test things like aliases and uninstalling. From the root of the nvm git repository, run the fast tests like this:

npm run test/fast

Run the slow tests like this:

npm run test/slow

Run all of the tests like this:

npm test

Nota bene: Avoid running nvm while the tests are running.

Bash completion

To activate, you need to source bash_completion:

[[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion

Put the above sourcing line just below the sourcing line for nvm in your profile (.bashrc, .bash_profile).

Usage

nvm:

$ nvm Tab

alias               deactivate          install             ls                  run                 unload
clear-cache         exec                list                ls-remote           unalias             use
current             help                list-remote         reinstall-packages  uninstall           version

nvm alias:

$ nvm alias Tab

default

$ nvm alias my_alias Tab

v0.6.21        v0.8.26       v0.10.28

nvm use:

$ nvm use Tab

my_alias        default        v0.6.21        v0.8.26       v0.10.28

nvm uninstall:

$ nvm uninstall Tab

my_alias        default        v0.6.21        v0.8.26       v0.10.28

Compatibility Issues

nvm will encounter some issues if you have some non-default settings set. (see #606) The following are known to cause issues:

Inside ~/.npmrc:

prefix='some/path'

Environment Variables:

$NPM_CONFIG_PREFIX
$PREFIX

Shell settings:

set -e

Installing nvm on Alpine Linux

In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run nvm install X. The Node project compiles, tests and hosts/provides pre-these compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al).

Alpine Linux, unlike mainstream/traditional Linux distributions, is based on BusyBox, a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - musl. This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply nvm install X on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see ...does not exist errors if you try that.

There is a -s flag for nvm install which requests nvm download Node source and compile it locally.

If installing nvm on Alpine Linux is still what you want or need to do, you should be able to achieve this by running the following from you Alpine Linux shell:

apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries.

As a potential alternative, @mhart (a Node contributor) has some Docker images for Alpine Linux with Node and optionally, npm, pre-installed.

Docker for development environment

To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 14.04 base image, prepared with essential and useful tools for nvm development, to build the docker image of the environment, run the docker command at the root of nvm repository:

$ docker build -t nvm-dev .

This will package your current nvm repository with our pre-defined development environment into a docker image named nvm-dev, once it's built with success, validate your image via docker images:

$ docker images

REPOSITORY         TAG                 IMAGE ID            CREATED             SIZE
nvm-dev            latest              9ca4c57a97d8        7 days ago          650 MB

If you got no error message, now you can easily involve in:

$ docker run -it nvm-dev -h nvm-dev

nvm@nvm-dev:~/.nvm$

Please note that it'll take about 8 minutes to build the image and the image size would be about 650MB, so it's not suitable for production usage.

For more information and documentation about docker, please refer to its official website:

  • https://www.docker.com/
  • https://docs.docker.com/

Problems

  • If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/.nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following:

    curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume.

  • Where's my sudo node? Check out #43

  • After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use -s option to force install from source:

nvm install -s 0.8.6
  • If setting the default alias does not establish the node version in new shells (i.e. nvm current yields system), ensure that the system's node PATH is set before the nvm.sh source line in your shell profile (see #658)

Mac OS troubleshooting

nvm node version not found in vim shell

If you set node version to a version other than your system node version nvm use 6.2.1 and open vim and run :!node -v you should see v6.2.1 if you see your system version v0.12.7. You need to run:

sudo chmod ugo-x /usr/libexec/path_helper

More on this issue in dotphiles/dotzsh.

nvm open issues Ask a question     (View All Issues)
  • about 2 years nvm install may failed with broken cache
  • about 2 years npm is only available in interactive shell
  • about 2 years NVM getting very slow on startup in Bash
  • about 2 years Adapt this command to install version as well
  • about 2 years ls-remote and install many times to run
  • about 2 years Can't uninstall version if lib/node_modules contain a symlink
  • about 2 years Run Travis tests on OS X
  • about 2 years Loading nvm is unbelievably slow (7-46 seconds)
  • about 2 years nvm: install v6.7.0 failed!
  • about 2 years Add nvm ls-remote --short (maybe as default)
  • about 2 years Polish: Output of nvm ls-remote in multi-columns
  • about 2 years Install notice for unmaintained versions.
  • about 2 years unnecessary system node required to get past prefix error on clean install
  • about 2 years How about nvm profiles
  • about 2 years sort command not found (may be OSX Sierra env related)
  • about 2 years NVM is slow (> 650ms)
  • about 2 years support strict-ssl-false param?
  • about 2 years Is it required to set NODE_PATH using NVM to manage multiple Node.js version ?
  • about 2 years Using the system node as default
  • about 2 years Option to set --lts as default
  • about 2 years N/A: version "N/A" is not yet installed.
  • over 2 years Add `prune` support to nvm
  • over 2 years after installing osx 10.11.6 nvm won't work
  • over 2 years `nvm use` does not fully respect `--silent`
  • over 2 years `nvm run` does not work with files whose names consist of digits
  • over 2 years Unable to install 'Permission denied'
  • over 2 years nvm exec/run does not let signals through
  • over 2 years Add --verbose option to help diagnose remote/install slowness
  • over 2 years nvm doesn't work with curl alias
  • over 2 years No longer supports `set -e`
nvm open pull requests (View All Pulls)
  • Trim whitespace from .nvmrc
  • Added an Environment Variable to define a HTTP-Proxy
  • added --upgrade-npm to install command
  • [refactor] use "case" instead of if/else in install
  • Set NVM_DIR to real path to avoid symlink issues in #617
  • Clear environment variables when resourcing nvm
  • Check installation dir permissions before uninstalling
  • recommend escaping any shell commands
  • Install bash programmble completions for bash/zsh
  • Add GnuPG (gpg) verification of checksum file
  • source command also necessary following the install script step
  • Fixes bug where NVM init script is appended to the wrong startup file for ZSH users
  • 429 - use "Bats" for tests
  • Introduce copy METHOD for installation
  • 303 nvm in fish
  • Vagrant
  • [install script] Refactors NVM_DIR
  • Ignore aliases (fixes #536)
  • Installs Node.js and ends the setup process automatically
  • Fix install / run issues on Ubuntu
  • Add Bash script for auto-nvm use to README.
  • Updated README with Step by Step Troubleshooting
  • Dropped io.js references
  • [Docs] Quickly explain how to use nvm, per #1030.
  • Add remote LTS support
  • Add info on how to enable version auto switching using .bashrc file
  • Add OpenBSD support.
  • Add info WRT installing on Alpine Linux / Busybox
  • Use arm64 packages on aarch64
  • `nvm upgrade`
  • Slightly elaborated the instruction for manual install
  • update nodejs version list
  • use sh syntax highlight in README.markdown
  • Update readme default version instructions
  • Instructions to uninstall in case of problems
  • Clarified that the terminal needs to be restarted.
  • Clears "NVM_NODEJS_ORG_MIRROR is deprecated" node-gyp warning
  • Add trailing newline char to $SOURCE_STR
  • [Fix] make `nvm use` display `.nvmrc`'s version in output messages
  • Adding "nvm alias default system" instruction
  • Mac os troubleshooting
  • Rewrite installation code path
  • [Docs] add foundation-required files
  • nvm_self_upgrade to upgrade nvm itself
  • Add silent flag tests
  • Fix 1187 display nvrmrc version in nvm use
  • Ensure script only runs in users HOME directory
  • Run Travis tests on OS X
  • Improve nvm_download_artifact() process, fix #1291
  • Show the version for "system" in `nvm ls`
  • Tune CC and CXX assignment
  • [Fix] install from src should do "nvm use" before npm detection
  • Don't mess with the order of the path locations when changing versions
  • Don't change the node version if nvm.sh is re-sourced
  • Use `which` instead of `type` to detect if command exists
  • [WIP][CI] Enable clang v3.8 on Travis CI
  • bash_completion fixes
  • Use awk for reliable path stripping
  • [Fix] Install failed should return correct exit status, fix #1347
  • Add quick intro to NVM
  • Post install hook
  • Alpine linux tuning
  • [Refactor] Speedup nvm_list_aliases()
  • [Tests] Try to detect & use more threads in local
  • [Tests] Separate shellcheck in Travis CI to speedup
  • [New] Speedup process to install nvm from git by dropping commit history
  • [New] Introduce Docker environment for nvm
  • [Tests] Print all shell version in Travis CI
  • [WIP] [Refactor] Reduce one more `sed` & pipe to speedup
  • [New] Support `--no-progress` for `nvm install`, close #1079
  • [Doc] Address symbolic link issue in `nvm_die_on_prefix` error message
  • [Fix] Fix sed syntax error in nvm_command_info()
  • [copyright] update to 2018
  • chore: improve performance of nvm version command
  • add yarn to nvm_print_npm_version
  • Mention ps-nvm in README
  • Updated README.md
  • return 0 for profile commands
  • update README.md
  • [Tests] Add markdown-link-check on Travis CI
  • [New] Print $SHLVL in `nvm debug`
  • [Fix] Enhance nvm debug to catch alreay known exceptions
  • Minor fixes (proposal)
  • Fall back to .node-version if it exists
  • Alternative way of encountering .nvmrc - lazily load nvm if the node …
  • remove npm dependency for prefix check
  • Alternative plain bash instructions for zsh hook
  • Update README.md - usage with Docker
  • Use package.json engines semver expression
  • [Docs] Add reminder that NVM_DIR should not contain trailing slash
  • Improve OS version detection in `nvm debug`
  • [New] Add "$PATH" to `nvm debug` output
  • Use grep `-q` parameter instead of redirect to /dev/null
  • [Fix] Improve .nvmrc reading process
  • [New] Add EditorConfig to help maintain part of coding style
  • [Fix] Remove $NVM_DIR trailing slash automatically, fix #1708
  • Add info to restart bash if verification not working in verification section
nvm questions on Stackoverflow (View All Questions)
  • Node Version Manager install - nvm command not found
  • NVM - Set Node Version On Terminal Opening
  • I can see that nvm and npm is not installed after succesfull installation
  • How to update node with nvm
  • Node.js - Configuring $NODE_PATH with NVM
  • Where does nvm store node.js installations?
  • NVM giving error while doing nvm ls
  • nvm is not compatible with the npm config "prefix" option:
  • install nvm in docker
  • how to make nvm automatically sourced upon login
  • nvm ls-remote command results in "N/A"
  • nvm alias default not working in MacOS Capitan EL
  • How to run NVM command from bash script
  • How can I use nvm to manage multiple locally installed node.js?
  • Is there any way how to run "nvm use" automatically in "prestart" npm script?
  • nvm keeps "forgetting" node in new terminal session
  • Remove Node installed via homebrew, replace it by nvm - what is the best way?
  • nvm/node.js conflicting with Homebrew?
  • How can I change the version of npm using nvm?
  • NVM global module folder
  • NPM not found when using NVM
  • Installation Node v4.1 with NVM - Permission denied
  • Closing the terminal doesnt remember my .profile changes for nvm/npm
  • Installation nvm in Ubuntu 14.04
  • A dotfile that will set the default node version on a project using nvm?
  • NVM: node versions install, but then can't be used
  • NVM doesn't stick to alias default with ZSH (oh-my-zsh)
  • How to make nvm run from within a script influence the environment of the calling shell?
  • Troubleshoot installing NVM.
  • nvm ls-remote command results in “N/A”
nvm list of languages used
nvm latest release notes
v0.33.8 v0.33.8

Fix

  • nvm install-latest-npm: fix for node 4.5/4.6
v0.33.7 v0.33.7

Fixes

  • fix unassigned variable (#1665, #1664)
  • Fix for $path used by zsh (#1669)
  • set -u: ensure NVM_USE_OUTPUT is always set (#1671)
  • install.sh: Fix a bug that block that installation of node in install.sh (#1676)
  • nvm install-latest-npm: fix node 4-4.6

Documentation

  • Make nvm cache clear message less ambiguous (#1644)
  • Added missing piece (#1658)
v0.33.6 v0.33.6

Fixes

  • install.sh do not use nonexistent variable (#1605)
  • install-latest-npm: npm v5.4+ breaks on node v4.5 and v4.6

Documentation

  • Improve git installation instructions (#1636)
  • Fix typos (#1640)

Tests

  • [Cleanup] Remove ghc related things in .travis.yml (#1639, #1619)
Other projects in Shell