NPM installera déjà des packages locaux dans vos projets, mais j'aime toujours garder le système à l'écart des fichiers de mon système d'exploitation. Voici comment je suggère de compartimenter les packages Nodejs:
Installez Nodejs et NPM via le PPA chris-lea. Ensuite, j'ai configuré une racine de package dans mon homedir pour contenir les packages "globaux" de Node:
$ NPM_PACKAGES="$HOME/.npm-packages"
$ mkdir -p "$NPM_PACKAGES"
Configurez NPM pour qu'il utilise ce répertoire pour ses installations globales de package:
$ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc
Configurez votre PATH et MANPATH pour voir les commandes dans votre préfixe $ NPM_PACKAGES en ajoutant ce qui suit à votre .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"
Désormais, lorsque vous effectuez une opération npm install -g
, NPM installera les bibliothèques ~/.npm-packages/lib/node_modules
et liera les outils exécutables dans ~/.npm-packages/bin
, qui se trouve dans votre fichier PATH
.
Utilisez simplement npm install -g
comme vous le feriez normalement:
[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