LoginSignup
10
9

More than 5 years have passed since last update.

npmでローカルのbinファイルを使いたい

Last updated at Posted at 2014-04-09

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-scriptnode_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

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9