I have a problem understanding the use of n. Basically, it is clear that it is a version manager for Node.js such as nvm.
But in contrast to nvm, which is basically a shell script, according to the documentation you are encouraged to use npm to install n:
$ npm install -g n
What I don't get is: For having npm
at hand you need to install Node.js. Why would I install Node.js manually to use npm
to then be able to install Node.js using n?
To put my question in other words: Why does n suggest installing using npm
, if its main purpose is to install Node.js, which includes npm?
Best Answer
tl; dr
I feel your pain. Installing Node.js to then install
n
to then manage Node.js installations is indeed a strange setup.It would indeed be great to be able to install
n
by itself first.I've created a project to support installation of
n
directly from GitHub; the only prerequisite beyond whatn
itself needs isgit
.Note that you must first remove any pre-existing
n
/ Node.js versions.The target directory,
~/n
by default, must either not yet exist or be empty.For
bash
,ksh
, andzsh
, the relevant shell initialization file (e.g.,~/.bashrc
) is automatically modified to define environment variableN_PREFIX
and append$N_PREFIX/bin
to the$PATH
; for other shells, this must be done manually.Aside from installing
n
directly from GitHub, it also installs helper scripts for updatingn
(n-update
) and uninstalling it (n-uninstall
).Here are working examples; see the n-install GitHub repo for details:
Installation with confirmation prompt to confirm installing to default location
$HOME/n
and installing the latest LTS Node.js version:Automated installation to the default location, with subsequent installation of the latest LTS (long-term support) and latest-overall Node.js versions, as well as the latest 4.1.x Node.js version:
Automated installation to the default location, without subsequent installation of a Node.js version:
Automated installation to custom location
~/util/n
, with subsequent installation of the latest LTS Node.js version: