diff --git a/README.md b/README.md index 9e412eb..aa1d486 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ bleeding edge version without uninstalling the stable version of node, this util ### Installation -Download the latest from the [releases](https://github.com/coreybutler/nvm/releases) and run the installer. +Download the latest installer from the [releases](https://github.com/coreybutler/nvm/releases). ### Usage @@ -19,13 +19,14 @@ nvm for Windows is a command line tool. Simply type `nvm` in the console for hel - `nvm install `: Install a specific version, i.e. `0.10.32`. This will also accept `latest`, which will install the latest stable version. - `nvm uninstall `: Uninstall a specific version. - `nvm use `: Switch to a specific version of node. -- `nvm list `: List the versions of node that are currently installed or the versions available from nodejs.org. +- `nvm list`: List the versions of node that are currently installed. - `nvm on`: Turn on nvm management. -- `nvm off`: Turn off nvm entirely. +- `nvm off`: Turn off nvm entirely (does not uninstall anything). +- `nvm root `: Specify the root directory where the different versions of node.js are stored. Leave blank to see the current root. ### Gotcha! -Please note that any global npm modules you may have installed are **not** shared between the various versions of node.js installed. +Please note that any global npm modules you may have installed are **not** shared between the various versions of node.js you have installed. --- @@ -43,8 +44,8 @@ problems. ## What's the difference? First and foremost, this version of nvm has no dependency on node. It's written in [Go](http://golang.org/), which is a much more structured -approach than using a `.bat` file. It does not rely on having an existing node installation. Plus, the potential for creating a -Mac/Linux version is substanially easier than converting a bunch of `.bat --> .sh` logic. +approach than using a `.bat` file. It does not rely on having an existing node installation. Plus, should the need arise, there is potential +for creating a Mac/Linux version with a substanially easier migration path than converting a bunch of `.bat --> .sh` logic. The approach is also quite different. There are two general ideas for supporting multiple node installations and readily switching between them. One is to modify the system `PATH` any time you switch versions. This always seemed a little hackish to me, and it has some quirks. The other option @@ -52,15 +53,18 @@ is to use a symlink. This concept requires one to put the symlink in the system installation directory you want to use. This is a more straightforward approach, and the one most people recommend.... until they realize just how much of a pain symlinks are on Windows. In order to create/modify a symlink, you must be running as an admin, and you must get around Windows UAC (that annoying prompt). Luckily, this is a challenge I already solved with some helper scripts in [node-windows](http://github.com/coreybutler/node-windows). +As a result, nvm for Windows maintains a single symlink that is put in the system `PATH` during installation. Switching to different versions of node +is a matter of switching the symlink target. As a result, this utility does **not** require you to run `nvm use x.x.x` every time you open a console +window, and it is automatically updated across all open console windows. It also persists between system reboots. This version of of nvm for Windows comes with an installer, courtesy of a byproduct of the node-webkit work I did on [Fenix Web Server](http://fenixwebserver.com). -Overall, this project brings together some robust new technology, a few battle-hardened pieces of other modules, and support for newer versions of node. +Overall, this project brings together some ideas, a few battle-hardened pieces of other modules, and support for newer versions of node. ## Why? I needed it, plain and simple. Additionally, it's apparent that [support for multiple versions](https://github.com/joyent/node/issues/8075) is not -coming to node core. It was also an excuse to play with Go :) +coming to node core, or even something they care about. It was also an excuse to play with Go :) ## License