今からのnode.js事始め[準備編]

今回は ubuntu12.04 に node.js の開発環境を整えてみます。一応、aptitude からインストールすることもできますけど、この記事を書いてる段階では v0.6.12 と結構古いバージョンが入っちゃいます。また、http://nodejs.org/download/ からバイナリーパッケージをダウンロードしてインストールすることもできますけど、node.js は開発速度が早いので creationix/nvm · GitHub などのマネージャからインストールした方が良さげです。

前に挙げた nvm のページにもインストール方法が掲載されてますが、git が入っていれば

$ git clone git://github.com/creationix/nvm.git ~/nvm
$ . ~/nvm/nvm.sh

nvm コマンドが使えるようになります。node.js のインストールは nvm install [バージョン]で実行します。

$ nvm install v0.8.20
######################################################################## 100.0%
Now using node v0.8.20

インストールが成功すると自動的にそのバージョンの node use も合わせて実行してくれるので、そのまま利用できます。

その時点でインストール可能な node.js のバージョンを確認したい場合、nvm ls-remote で確認できます。以下のように結果が返ってきます。

$ nvm ls-remote
   v0.1.14          v0.3.5         v0.6.19
   v0.1.15          v0.3.6         v0.6.20
   v0.1.16          v0.3.7         v0.6.21
   v0.1.17          v0.3.8          v0.7.0
   v0.1.18          v0.4.0          v0.7.1
   v0.1.19          v0.4.1          v0.7.2
   v0.1.20          v0.4.2          v0.7.3
   v0.1.21          v0.4.3          v0.7.4
   v0.1.22          v0.4.4          v0.7.5
   v0.1.23          v0.4.5          v0.7.6
   v0.1.24          v0.4.6          v0.7.7
   v0.1.25          v0.4.7          v0.7.8
   v0.1.26          v0.4.8          v0.7.9
   v0.1.27          v0.4.9         v0.7.10
   v0.1.28         v0.4.10         v0.7.11
   v0.1.29         v0.4.11         v0.7.12
   v0.1.30         v0.4.12          v0.8.0
   v0.1.31          v0.5.0          v0.8.1
   v0.1.32          v0.5.1          v0.8.2
   v0.1.33          v0.5.2          v0.8.3
   v0.1.90          v0.5.3          v0.8.4
   v0.1.91          v0.5.4          v0.8.5
   v0.1.92          v0.5.5          v0.8.6
   v0.1.93          v0.5.6          v0.8.7
   v0.1.94          v0.5.7          v0.8.8
   v0.1.95          v0.5.8          v0.8.9
   v0.1.96          v0.5.9         v0.8.10
   v0.1.97         v0.5.10         v0.8.11
   v0.1.98          v0.6.0         v0.8.12
   v0.1.99          v0.6.1         v0.8.13
  v0.1.100          v0.6.2         v0.8.14
  v0.1.101          v0.6.3         v0.8.15
  v0.1.102          v0.6.4         v0.8.16
  v0.1.103          v0.6.5         v0.8.17
  v0.1.104          v0.6.6         v0.8.18
    v0.2.0          v0.6.7         v0.8.19
    v0.2.1          v0.6.8         v0.8.20
    v0.2.2          v0.6.9          v0.9.0
    v0.2.3         v0.6.10          v0.9.1
    v0.2.4         v0.6.11          v0.9.2
    v0.2.5         v0.6.12          v0.9.3
    v0.2.6         v0.6.13          v0.9.4
    v0.3.0         v0.6.14          v0.9.5
    v0.3.1         v0.6.15          v0.9.6
    v0.3.2         v0.6.16          v0.9.7
    v0.3.3         v0.6.17          v0.9.8
    v0.3.4         v0.6.18          v0.9.9

実際はインストール済みのバージョンは青色など色を変えて表示してくれます。

ちなみにこのままだとサーバへ繋ぐ度に . ~/nvm/nvm.shnvm use [バージョン] を実行する必要が出てくるので、.bashrcに

source $HOME/nvm/nvm.sh
nvm use 0.8.20 >/dev/null

を追記しておくと良いでしょう。この場合、使用する node.js のバージョンは 0.8.20 に固定されますが、

source $HOME/nvm/nvm.sh
nvm use 0.8 >/dev/null

とすると0.8系で最新のバージョンが利用でき、

source $HOME/nvm/nvm.sh
nvm alias default 0.8.18 >/dev/null

としておくと 0.8.18 が利用できるようになった上で、 0.8.18 には “default” でエイリアスが指定されるようになるので、以降 node.js のバージョンを切り替えても

$ nvm use default
Now using node v0.8.18

と、nvm use default でエイリアス指定した 0.8.18 を呼び戻せるようになります。とりあえず、

var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-type': 'text/plain'});
    res.end('Hello World.\n');

}).listen(8124, '0.0.0.0');

console.log('Server running at http://localhost');

と記述したファイルを

  1. test.js などと命名した上で保存
  2. そのファイルを作成したディレクトリから node test を実行
  3. ブラウザで http://localhost:8124/ へアクセス(node.js の環境構築先が localhost の場合)

これでブラウザに “Hello World.” と表示されれば無事 node.js のインストールは完了です。

次は node.js で開発し始めると何かとお世話になる npm について。npm は node.js をインストールするとセットで自動的にインストールされます。なので、node -v でバージョンが返ってくる状態なら通常 npm コマンドも有効になってるはずです。試しに npm -v を実行すると

$ npm -v
1.2.11

と npm のバージョンが返ってきます。

npm は Node Packaged Modules の略でその名の通り node.js のパッケージ管理ツールです。npm help を確認してみると npm には色々なコマンドの存在を確認できますが、よく利用するのは

npm install パッケージ名

指定したパッケージをインストールします。パッケージ名に続けて @バージョン を追記して実行すると指定のバージョンでインストールできます。なお、指定したパッケージが依存するパッケージも自動的にインストールされます。

また、-g オプションを付加するとグローバルインストールとなり、npm が存在する場所へインストールされます。例えば express という node.js のWebアプリケーションフレームワークがありますが、これを npm install -g express でグローバルインストールすると、express が入った mode_modules ディレクトリにパスが通ってない場所からも express のスケルトン作成のためのコマンドが実行できるようになります。

npm list
実行したディレクトリから見てパスの通っているパッケージの一覧を返します。node.jsインストールの際に合わせてインストールされるパッケージや -g オプション付きでインストールしたパッケージは含みません。それらのリストを見たい場合は npm list -g を実行します。
npm update <パッケージ名>
インストール済みのパッケージを最新バージョンへアップデートします。パッケージ名は半角スペース区切りで複数指定可能で、npm update outdated とすることで最新バージョンでない全てのパッケージを一括アップデートすることもできます。
npm uninstall パッケージ名
指定したパッケージをアンインストールします。
npm search 検索したい文字列
パッケージレジストリから”検索したい文字列”を検索します。パッケージ名を検索しようとしてもパッケージ名だけにヒットするとは限らないので、ちょっと使いにくいかも。

といったところになるんでしょうか。