io.jsをnodebrewから使う

v1.0.0が今日リリース予定のio.js

Nodeやio.jsのpreバージョンをビルドしてnvmから使う を参考にnodebrewでもio.jsを扱えるようにしてみました。

io.jsのインストール

$ git clone git@github.com:iojs/io.js.git
$ cd io.js
$ ./configure --prefix=/Users/username/.nodebrew/node/v1.0.0
$ make
$ make install

make installするとv1.0.0になるので、prefixを.nodebrew/node/v1.0.0にしておきます。

nodebrew確認

$ nodebrew ls
v0.10.35
v1.0.0

current: v0.10.35

正しくインストール出来ていれば、nodebrewのリストに表示されて扱えるようになります。

harmonyオプションの確認

Node.js v0.10.35

$ node --version
v0.10.35
$ node --v8-options | grep harmony
--harmony_typeof (enable harmony semantics for typeof)
--harmony_scoping (enable harmony block scoping)
--harmony_modules (enable harmony modules (implies block scoping))
--harmony_proxies (enable harmony proxies)
--harmony_collections (enable harmony collections (sets, maps, and weak maps))
--harmony (enable all harmony features (except typeof))

io.js v1.0.0

$ nodebrew alias iojs v1.0.0
$ nodebrew use iojs
use v1.0.0
$ node --version
v1.0.0
$ node --v8-options | grep harmony
--es_staging (enable all completed harmony features)
--harmony (enable all completed harmony features)
--harmony_shipping (enable all shipped harmony fetaures)
--harmony_modules (enable "harmony modules (implies block scoping)" (in progress))
--harmony_arrays (enable "harmony array methods" (in progress))
--harmony_array_includes (enable "harmony Array.prototype.includes" (in progress))
--harmony_regexps (enable "harmony regular expression extensions" (in progress))
--harmony_arrow_functions (enable "harmony arrow functions" (in progress))
--harmony_proxies (enable "harmony proxies" (in progress))
--harmony_sloppy (enable "harmony features in sloppy mode" (in progress))
--harmony_unicode (enable "harmony unicode escapes" (in progress))
--harmony_tostring (enable "harmony toString")
--harmony_numeric_literals (enable "harmony numeric literals")
--harmony_strings (enable "harmony string methods")
--harmony_scoping (enable "harmony block scoping")
--harmony_classes (enable "harmony classes (implies block scoping & object literal extension)")
--harmony_object_literals (enable "harmony object literal extensions")
--harmony_templates (enable "harmony template literals")

io.jsのaliasも設定して、nodeにはなかったオプションが追加されているのが確認出来ました。

追記

nodebrewのアップデートで、io.jsをinstall-binaryコマンドでインストールしてくれるようになりました。

$ nodebrew install-binary io@v1.0.0
$ nodebrew use io@v1.0.0
$ nodebrew ls
v0.10.35
io@v1.0.0

current: io@v1.0.0
io.jsNode.js