NPM ya instalará paquetes locales en sus proyectos, pero todavía me gusta mantener el sistema alejado de los archivos de mi sistema operativo. Así es como sugiero compartimentar los paquetes de Nodejs:
Instale Nodejs y NPM a través del PPA chris-lea. Luego configuré una raíz de paquete en mi homedir para contener los paquetes "globales" de Nodo:
$ NPM_PACKAGES="$HOME/.npm-packages"
$ mkdir -p "$NPM_PACKAGES"
Configure NPM para usar este directorio para las instalaciones de su paquete global:
$ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc
Configure su PATH y MANPATH para ver los comandos en su prefijo $ NPM_PACKAGES agregando lo siguiente a su .zshrc / .bashrc:
# NPM packages in homedir
NPM_PACKAGES="$HOME/.npm-packages"
# Tell our environment about user-installed node tools
PATH="$NPM_PACKAGES/bin:$PATH"
# Unset manpath so we can inherit from /etc/manpath via the `manpath` command
unset MANPATH # delete if you already modified MANPATH elsewhere in your configuration
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
# Tell Node about these packages
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
Ahora, cuando haga una npm install -g, NPM instalará las bibliotecas ~/.npm-packages/lib/node_modulesy vinculará las herramientas ejecutables en ~/.npm-packages/bin, que está en su PATH.
Solo use npm install -gcomo lo haría normalmente:
[justjake@marathon:~] $ npm install -g coffee-script
... (npm downloads stuff) ...
/home/justjake/.npm-packages/bin/coffee -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/coffee
/home/justjake/.npm-packages/bin/cake -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/cake
coffee-script@1.3.3 /home/justjake/.npm-packages/lib/node_modules/coffee-script
[justjake@marathon:~] $ which coffee
/home/justjake/.npm-packages/bin/coffee