Windowsでのnode.jsとnpmのインストールと基本的なセットアップ

最近JavaScriptを利用する場面が増えてきました。例えば、WebのREST APIのテストを自動化したり、ETLツールの機能拡張などにもJavaScriptの軽さと柔軟性が利点となる場面は多いです。

また、ブラウザによるWebクロールの自動化の際にも、ブラウザに搭載されていることの多いJavaScriptで、いろいろなことを自動で行うことができます。

そんなJavaScript界隈で特に人気なのが、ノンブロックI/Oでスケーラビリティのある処理を記述することのできるnode.jsですよね。

FrisbyやJasmineなどのテストフレームワークでも使用されています。

そこで今回はnode.jsとその周辺モジュールのインストールとセットアップを行います。

今回のゴール

メインのゴールは「node.js」のインストールですが、実際には、node.jsだけでなく、node.jsを使った様々なプロダクトをインストールして利用することが多いと思います。

そこで、node.jsのパッケージ管理の仕組みである「npm」と、npmでインストールした各プロダクトを利用できる環境設定までを行うことにしましょう。

node.jsのダウンロードとインストール

はじめに、node.jsのサイトから、Windows用のインストーラをダウンロードしてきます。

Windowsであれば「node-v6.10.3-x64.msi」のようなファイル名だと思いますので、ダウンロード後、ダブルクリックして、インストールを進めます。デフォルト設定であれば、特に迷うことはないと思います。

インストールできたら、早速、動くかどうか試してみましょう。「-v」オプションでバージョンを確認することができます。

> node -v
v6.10.3

また、node.jsをインストールすると、そのパッケージ管理の仕組みでもある「npm」コマンドも同時にインストールされているはずです。「-version」オプションでバージョンを確認してみましょう。

> npm --version
v3.10.10

node.jsのパッケージを動かすためのパス設定

以上でインストールは終了ですが、実際にnpmを利用してパッケージをインストールした場合には、「インストールしたパッケージを検索できるようにパスが設定されていること」が必要です。

というのも、多くの場合は、以下のようなinstallオプションでnpm経由でパッケージを追加していきます。

> npm install -g jasmine-node

「-g」オプションでインストールした場合、グローバル・インストールの場所にモジュールがダウンロードされますが、javascriptから利用する場合は、そのダウンロード場所にPATHが通っていなければ、モジュールを見つけることができず、

Exception loading: D:\MyDownload\soft\nodejs\test\spec\my_sample_spec.js
{ Error: Cannot find module 'frisby'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (D:\MyDownload\soft\nodejs\test\spec\my_sample_spec.js:1:76)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3) code: 'MODULE_NOT_FOUND' }
</anonymous>

といったエラーになってしまうからです。

それを防ぐには、「NODE_PATH」という環境変数に、モジュールが置かれるパスを登録する必要があります。

グローバルなインストール先のパスを確認するには、

> npm bin -g
C:\Users\username\AppData\Roaming\npm

のようなコマンドを入力します。Windows系の場合は、AppData\Roaming配下に置かれることが多いでしょう。

こうして確認したパスに「node_modules」を追加した値「C:\Users\username\AppData\Roaming\npm\node_modules」を環境変数「NODE_PATH」としてセットします。(※グローバル・インストール先のフォルダの配下に「node_modules」というフォルダが作られ、そこにnpmでインストールしたパッケージのライブラリが置かれていくためです。)

なお、「-g」オプションを付けないと、ローカルなインストール先に配置されます。この場所も以下のコマンドで確認できます。これは、実際にmsiでインストールしたディレクトリを指すことが多いと思います。

> npm bin
D:\MyDownload\soft\nodejs\node_modules\.bin

コマンドを打ち込んでもエラーが出たり、require()でモジュールが見つからない場合は、上記のパスが設定されているかを確認してみてください。