これまで本連載では、JavaScriptの実行エンジン「Node.js」を何度も利用してプログラムを作成しています。そして、Node.jsで何かしらツールを作るときに欠かせないのが、Node.jsのモジュールの存在です。Node.jsには、npmというパッケージマネージャーがあり、Node.jsのモジュールを手軽に導入することができます。

 とは言え、このモジュールというもの、どういう仕組みになっているのでしょうか。今回は、CSVファイルを読み込むCSVリーダーを作りながら、Node.jsのモジュールの仕組みに迫ってみたいと思います。また、npmを一般公開する手順までを紹介します。

作ったモジュールをnpmで公開しました
作ったモジュールをnpmで公開しました
[画像のクリックで拡大表示]

Node.jsとnpmコマンド

 さて、Node.jsでプログラムを作る際には、たいてい、npmコマンドを使って、モジュールをインストールします。ここで、いつものように、モジュールを一つインストールしてみましょう。

$ npm install iconv-lite

 すると、node_modulesというディレクトリが作成されます。ここを見ると、iconv-liteというディレクトリが作成されて、その下に、iconv-liteのもろもろのライブラリがダウンロードされます。このように、Node.jsのモジュールは、node_modulesというディレクトリ以下に配置されます。

 npmでは、グローバル領域へライブラリをインストールすることができます。この場合、オプションの「-g」を追加するのです。

$ npm install -g iconv-lite

 すると、npmで指定したパスのnode_modulesにライブラリがインストールされます。どこにインストールされているかは、次のコマンドで確認できます。

$ npm -g root

 ときどき、この「-g」オプションをつけてインストールしたモジュールが、Node.jsから参照できなくて、エラーが出ることがあります。それは、環境変数「NODE_PATH」にnpmのルートパスが含まれていないのが原因です。環境変数「NODE_PATH」に、上記のパスが設定されていれば、Node.jsからnpmのライブラリを参照します。