npm install には-gオプションがありますが、これを設定すべきときはいつなのかについてまとめました.
1.global / local の違い
a. global
global はシステム全体で対象のパッケージを利用できるようにします.
ファイルの保存場所としては、モジュールを{prefix}/lib/node_modulesに、実行ファイルを{prefix}/binに格納します.
{prefix}は/usr/localのようなディレクトリですが、環境によって異なります.
マニュアルも同時にインストールされます.マニュアルの場所は{prefix}/share/manです.
b. local
local はnpm installを実行するディレクトリでパッケージを利用できるようにします.
ファイルの保存場所としては、モジュールを./node_modulesに、実行ファイルを./node_modules/.bin/に格納します.
マニュアルはインストールされません.
2.どちらを使うべきか
requireを使ってプログラム内で呼び出しを行う場合は、そのプログラムが属するプロジェクトのルートディレクトリに対してlocalインストールすべきです.
shellのコマンドラインやshell scriptから利用する場合は、globalインストールすべきです.
3.迷った場合は
Coffee-script や Expressのように、コマンドラインからも利用するがrequireでJavaScriptのライブラリとしても利用するパッケージは、2.の判断基準では選択できません.
このような場合は、global / localともにインストールしてしまう方がシンプルで分かりやすいです.