2017年3月22日水曜日

npm と Node.js 上で require を使ったモジュール読み込みの仕組みについてメモ

npm でインストールしたモジュールの行方

まず, npm でインストールしたモジュールの行方についてまとめます.

npm でのインストールには 2種類あります.

ローカルインストール

普通にインストールするとローカルインストールになります. 現在のカレントディレクトリの node_modules フォルダの中にインストールします.

npm install モジュール名  

どこにインストールされるのかちゃんと確認したい場合は bin コマンドを使います.

npm bin  

グローバルインストール

グローバルインストールは全てのプロジェクト共通で使いたいモジュールをインストールする際に使います. やり方は簡単でローカルインストールの方法に -g オプションを加えるだけです.

また, グローバルインストールした場合, そのディレクトリにパスが通ります. coffeescript mocha を直接コマンドとして実行でるようになるのはそのためです.

npm install -g モジュール名  

グローバルインストール用フォルダがどこにあるのかは -g オプションをつけて bin コマンドを実行すると確認できます.

npm bin -g  

ちなみに windows の場合グローバルインストール用フォルダにパスが通っていないので, NODE_PATH 環境変数にパスを登録してから使うようにしましょう.

windows 7 の場合, C:/Users/ユーザー名/AppData/Roaming/npm/node_modules 的な場所にあるかと思います.

require でモジュールをサーチする場所

require でモジュールをサーチするディレクトリについてまとめます.

require で探すモジュールのパスは global.module.paths の中に入っています.

node  
global.module.paths  

デフォルトではカレントディレクトリから下りながら全てのディレクトリの node_modules が登録されています.

[ 'e:/Users/hoge/Documents/work/node_modules',
  'e:/Users/hoge/Documents/node_modules',
  'e:/Users/hoge/node_modules',
  'e:/Users/node_modules',
  'e:/node_modules' ]

それに加えて NODE_PATH 環境変数の中にあるモジュールを探しに行きます.

Reference

参考にしたサイト

 

0 件のコメント:

コメントを投稿