UbuntuでNode.js+Cloud9+Express開発環境を構築

注意!!
この記事はもう古いです。新しい記事を書きましたので、こちらを参照してください。

2014年5月版 Ubuntuへのnode.js+expressインストール

---------------------------------------------------

メモする。

必要なパッケージのダウンロード&インストール

[bash]
$ sudo apt-get install libssl0.9.8 npm nodejs mercurial libxml2-dev
[/bash]

libssl0.9.8はCloud9実行時にライブラリがないと怒られるためインストール。Mercurialは無いとCloud9実行後、何かのアイコンをクリックした瞬間に死ぬ。libxml2-devはインストールしろとCloud9のREADMEに書いてあった。

このままだと、nodeのバージョンが古いのでCloud9が動かない。最新版をダウンロードする。以下を参照した。

nvmを使ってUbuntu 12.04に最新のNode.jsとnpmをインストール

[bash]
$ git clone https://github.com/creationix/nvm.git ~/.nvm
$ . ~/.nvm/nvm.sh
$ nvm install v0.10.19
[/bash]

また、~/.bashrcに以下を追加。

[bash]
. ~/.nvm/nvm.sh
nvm use v0.10.19
[/bash]

次にnpm(nodeのパッケージマネージャ)を使ってexpressをダウンロード。

[bash]
$ npm install express
$ cd express
& npm install
[/bash]

npm installとすると、package.jsonファイルを読み取って依存関係にあるパッケージを自動的にインストールしてくれるらしい。便利だ。

npmはプロクシ経由で接続している場合はエラーが出る。npmでプロクシを使うよう設定。

[bash]
$ npm config set proxy http://proxy.xxx.co.jp:8080
[/bash]

registryが設定されていないと怒られたら以下のように設定する。

[bash]
$ npm config set registry http://registry.npmjs.org/
[/bash]

次にCloud9をインストールする。npmからもインストールできるが、バージョンが古いのでgitからインストールする。

[bash]
$ git clone https://github.com/ajaxorg/cloud9.git cloud9
$ cd cloud9
$ npm install
[/bash]

ここでもプロクシ経由だとエラーが起きる場合がある。gitプロトコルを認めていないプロクシだとエラーになる。普通はブロックしているだろうと思う。プロクシサーバとか、Webフィルタリングとか、マジでソフト屋にとっては邪魔だからやめて欲しいんだけどな。

gitでgitプロトコルを強制的にhttpに変換する場合は以下のようにするらしい。

プロキシ環境下でgitを使う

[bash]
$ git config --global http.proxy http://proxy.example.com:8080
$ git config --global https.proxy http://proxy.example.com:8080
$ git config --global url."https://".insteadOf git://
[/bash]

expressのプロジェクトを作成

[bash]
$ ./node_modules/express/bin/express app1
$ cd app1
$ npm install
[/bash]

Cloud9起動

ワークスペースを指定してcloud9起動。ここで注意していただきたいのが、-w以降に相対パスを書くとcloud9のディレクトリからの相対パスとみなされるようだ。従って、下記のようにチルダを使ってユーザーのホームから指定する。

[bash]
$ ./cloud9/bin/cloud9.sh -w ~/node-test/app1/
[/bash]

ブラウザからhttp://localhost:3131にアクセスすると以下のようなIDEが立ち上がる。すごい!

cloud91

app.jsをクリックしてstartすると、以下のように何かが立ち上がる。

c9kidou

running at...の後のhttp://...のアドレスをクリックすると、なんと、同一画面上に表示される。すごいすごい!…でもエラーが起きてる。doctype 5はもう古いからhtmlを使えって書いてる。読みにくいけど。

c9error

なんのことかわからんが、layout.jadeを開いてそのように直したら動いた。

c9corrected

インストールやプロクシの設定で躓いて結構時間がとられたが、理解してしまえばあとは簡単。こんなに便利なIDEがブラウザで動くなんて、すげー時代になったもんだなあ。