2015.11.13 追記
最近はsource .rc
ではなく./env.sh hoge.[pl|js]
の方がいいかなと思ってそうしてます。
env.sh
#!/bin/sh
export PATH=$(npm bin):$PATH
exec $*
npmにはbundlerやcartonにあるようなnpm exec
相当のものはないようで、package.jsonに記述して使うnpm run-script
もnode_modules/.bin/
をPATHに入れてくれるものの、ちょっと用途が違う。
結局自分でパスに追加するのが簡単かなーと。
vi .rc
#!/bin/sh
export PATH=$(npm bin):$PATH
これを作業前にsource .rc
で読みこめばnode_modules/.bin/
から参照してくれます。
ちなみにperlのcaronでも何度もcarton exec
を打つのが面倒な時は同じようなことをしています。
#!/bin/sh
eval $(perl -Mlocal::lib=local)
#呼び出される内容は以下
#CURRENT_DIR
#PATH="$CURRENT_DIR/local/bin${PATH+:}${PATH}"; export PATH;
#PERL5LIB="$CURRENT_DIR/local/lib/perl5${PERL5LIB+:}${PERL5LIB}"; export PERL5LIB;
#PERL_LOCAL_LIB_ROOT="$CURRENT_DIR/local${PERL_LOCAL_LIB_ROOT+:}${PERL_LOCAL_LIB_ROOT}"; export PERL_LOCAL_LIB_ROOT;
#PERL_MB_OPT="--install_base \\"$CURRENT_DIR/local\\""; export PERL_MB_OPT;
#PERL_MM_OPT="INSTALL_BASE=$CURRENT_DIR/local"; export PERL_MM_OPT;
2つ並べて気がついたけど、perlはPERL5LIB
にパスを通してあげないとuse Module
できないけど
nodeは特に何もせずrequire('Module')
でnode_modulesを読んでくれます。
さらに言うと'../node_modules`とどんどん遡って探してくれるそうです。
http://nodejs.jp/nodejs.org_ja/api/modules.html#modules_loading_from_node_modules_folders