status
failed

# Per-user package installation with NPM on Linux

I find the node.js package manager, npm, to be a little annoying. It offers two options for installing software:

• Install to the current directory (for example, to use with a current project)
• Install system-wide

The second is obviously a problem if one doesn’t have root priviliges, and the first is incredibly annoying for installing software, as there isn’t an easy way to add the resulting installed binary to your $PATH. I much prefer the behaviour of cabal-install, the Haskell package manager, which installs locally to$HOME/.cabal/ on a per-user basis.

To get Node.js to mimic this behaviour is quite simple. In your ~/.zshrc or ~/.bashrc simply add the line

alias npm="PREFIX=$HOME/.npm-modules/ npm" This sets the path npm uses to install modules to a local directory: npm-modules. You can now set your $PATH to include binaries installed via npm by including the directory \$HOME/.npm-modules/bin/.