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?
To publish and install packages to and from the public npm registry or a private npm registry, you must install Node. js and the npm command line interface using either a Node version manager or a Node installer. We strongly recommend using a Node version manager like nvm to install Node. js and npm.
Node Version Manager, more commonly called nvm, is the most popular way to install multiple versions of Node. js, but is only available for Mac/Linux and not supported on Windows. Instead, we recommend installing nvm-windows and then using it to install Node.
tl; dr
# Installs n and the latest LTS Node.js version to ~/n. # For bash, ksh, zsh, modifies the respective user-specific shell-initialization file to # define env. variable N_PREFIX and append $N_PREFIX/bin to the $PATH. curl -L https://git.io/n-install | bash
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 what n
itself needs is git
.
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
, and zsh
, the relevant shell initialization file (e.g., ~/.bashrc
) is automatically modified to define environment variable N_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 updating n
(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:
curl -L https://git.io/n-install | bash
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:
curl -L https://git.io/n-install | bash -s -- -y lts latest 4.1
Automated installation to the default location, without subsequent installation of a Node.js version:
curl -L https://git.io/n-install | bash -s -- -y -
Automated installation to custom location ~/util/n
, with subsequent installation of the latest LTS Node.js version:
curl -L https://git.io/n-install | N_PREFIX=~/util/n bash -s -- -y
If you prefer, you can install n from source:
cd /tmp git clone --depth=1 https://github.com/tj/n cd n sudo make install
Then you can install the latest stable version of node as follows:
n stable
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With