n (node version manager) not working after install - "bash: n: command not found"

jdp-positional-10 picture jdp-positional-10 · Oct 1, 2019 · Viewed 9.9k times · Source

I would like to manage node.js versions using the n - node version manager.

I attempted to install n by following the Github docs https://github.com/tj/n and input the following in my terminal:

sudo npm install -g n

After entering my password my terminal returns:

/usr/local/lib/node_modules/node/bin/n -> /usr/local/lib/node_modules/node/lib/node_modules/n/bin/n
+ [email protected]

However, after installing n my terminal doesn't recognize the relevant commands and instead states:

bash: n: command not found

My current node version installed is v12.3.0, while my npm is version 6.9.0.

Any help would be greatly appreciated.

Thanks

Answer

shadowspawn picture shadowspawn · Oct 5, 2019

The commands added using npm global packages are found by the the install location appearing in your PATH environment variable. You appear to have a misconfigured prefix, perhaps due to how node and npm are installed.

This is how things look in a typical setup. The bin folder under the npm prefix is included in PATH so the installed commands are found.

$ npm prefix --global
/usr/local
$ sudo npm install -g n
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
+ [email protected]
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
$ command -v n
/usr/local/bin/n
$ n --version
6.0.1