[2015.06.26 追記]
1年以上前に書いた情報で、情報入手元としてリンクしてあったURLが404になってしまっているようですね。
新しい情報入手元には npm Webサイトの Display npm bin folder を参考にするのがいいと思います。
以前のページには "実行モジュールインストール先のパス" が書いてありましたが、新しいリンク先では "各々の環境での実行モジュールインストール先のパスの調べ方" が書いてあります。
そんな訳で実行モジュールのインストール先は npm bin
の結果をもって読み替えていただくといいと思います。
-- 追記ここまで --
実は Node.js はほとんど使っていないのですが、less だったり Yeoman だったりといった npm でインストールするものを使いたいときがあります。
そのとき npm install -g piyopiyo とグローバルモードでインストールする場合は、インストールするだけで不自由なく使える事が多いのですが、ローカルモードでインストールしたときは各実行モジュールのパスを手動で追加するのか、、?という点で困った & 解決したのでそのメモです。
※ このメモは OS が OSX or FreeBSD の前提です。
さいしょに結論
お使いのシェルの設定ファイルで、PATH の指定に以下のような行を追加。
私は zsh で .zshenv に PATH の設定を書いているので、${HOME}/.zshenv を編集しました。
if [ -d ${HOME}/node_modules/.bin ]; then
export PATH=${PATH}:${HOME}/node_modules/.bin
fi
そして設定ファイルを再読み込み。
zsh% source ~/.zshenv
グローバルモードでインストールすると
npm は -g オプションをつけるとグローバルモードになって、/usr/local/(もしくは prefix で指定したディレクトリ)以下の環境へインストールしてくれるそうで。
- モジュール自体は --> /usr/local/lib/node_modules/ の下へ
- 実行モジュールは --> /usr/local/bin/ の下へ
それぞれ配置されてます。
元々、実行モジュールのインストール先 /usr/local/bin/ にパスを通してあるので、-g オプションをつけてインストールした後は何もせずともコマンドが実行できます。
ローカルモードでインストールすると
-g オプションをつけずに、npm install piyopiyo などとした場合、カレントワーキングディレクトリの下にインストールしてくれるそうで。
たとえばホームディレクトリ /home/mydir でインストールをした場合、
- モジュール自体は --> /home/mydir/node_modules/ の下へ
- 実行モジュールは --> /home/mydir/node_modules/.bin/ の下へ
それぞれ配置されます。
.bin/ の存在を知るまで、各 /homemydir/node_modules/*/bin/ へパスを通さないと使えないのだと思っていました。
そしてインストールした npm モジュールが複数になってきたあたりで「あれ、、、これ面倒じゃない?」という事態が起きてました。
参照するところ/気をつけること
npm のWebサイト に実行モジュールのインストール先についての説明があるのでご一読を。
そしてこの設定を有効活用するには、「ローカルモードでインストールするときはホームディレクトリでインストールする」必要があります。
諸事情で別のディレクトリへインストールするのであれば、そこの .bin へパスを通すことになると思います。
※ 今のところ予定はないけど、nodebrew でバージョン管理をしだしたりするとどうなるんだろう。。
このメモを書いたときの手元の環境
参考までに。
Mac
- OS X 10.9.2
- npm 1.3.24
FreeBSD
- FreeBSD 9.1
- npm 1.1.62