久しぶりにMacにJSXをインストールしてみる

## はじめに

2年ほど前に登場したJSXですが，しばらくアップデートせずに使っていて，久しぶりに最新版の環境を整える必要があったので，手順とログを記しておきます．

今回使用した環境とインストールしたソフトウェアおよびそれらのバージョンは以下のとおりです．

```text:当方の環境
MacOS X 10.9.3 (Marvericks)
zsh 5.0.5
```
```text:今回インストールしたソフトウェア
nodebrew 0.7.4
node.js 0.11.13
JSX 0.9.89
```

## 実際の作業とログ

### nodebrewのインストール

昔はnvmなどを使ってnode.jsのバージョンを管理していたのですが，最近ではnodebrewを使うのが良いようです．インストール作業を行うと「pathを通せ」とメッセージが出てくるので通します．ここでは.zshrcに追加する例を示します．

```text:command
suda@sahara:~$ curl -L git.io/nodebrew | perl - setup
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100 20027  100 20027    0     0   9661      0  0:00:02  0:00:02 --:--:-- 2793k
fetching nodebrew...
install nodebrew in $HOME/.nodebrew

========================================
Add path:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
suda@sahara:~$ echo "export PATH=$HOME/.nodebrew/current/bin:$PATH" >> .zshrc
suda@sahara:~$ source ~/.zshrc
suda@sahara:~$
```

### node.jsのインストール

手順としては，インストールするバージョンを確認し，実際のインストール作業を行い，その後実際に使用するバージョンを指定するという流れになります．

まずはインストール可能なバージョンを確認します．

```text:command
suda@sahara:~$ nodebrew ls-remote
v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6

v0.1.0    v0.1.1    v0.1.2    v0.1.3    v0.1.4    v0.1.5    v0.1.6    v0.1.7
v0.1.8    v0.1.9    v0.1.10   v0.1.11   v0.1.12   v0.1.13   v0.1.14   v0.1.15
・・・長いので中略・・・
v0.11.0   v0.11.1   v0.11.2   v0.11.3   v0.11.4   v0.11.5   v0.11.6   v0.11.7
v0.11.8   v0.11.9   v0.11.10  v0.11.11  v0.11.12  v0.11.13
suda@sahara:~$
```

最新版はv0.11.13のようです．早速インストールします．

```text:command
suda@sahara:~$ nodebrew install-binary 0.11.13
fetch: http://nodejs.org/dist/v0.11.13/node-v0.11.13-darwin-x64.tar.gz
######################################################################## 100.0%
Install successful
suda@sahara:~$
```

最新版をインストールするのであれば，以下のように"latest"を指定することもできます．

```text:command
suda@sahara:~$ nodebrew install-binary latest
fetch: http://nodejs.org/dist/v0.11.13/node-v0.11.13-darwin-x64.tar.gz
######################################################################## 100.0%
Install successful
suda@sahara:~$
```

続いて，実際に使用するnode.jsのバージョンを指定します．

```text:command
suda@sahara:~$ node
zsh: command not found: node
suda@sahara:~$ nodebrew ls
v0.11.13

current: none
suda@sahara:~$ nodebrew use 0.11.13
use v0.11.13
suda@sahara:~$ node -v
v0.11.13
suda@sahara:~$
```

### JSXのインストール

こちらもnpmコマンドでさくっとインストールします（直前に作業確認し，投稿用に再度作業したのでキャッシュされているファイルが多いようですが気にしないでください）．

```text:command
suda@sahara:~$ npm install -g jsx
npm http GET https://registry.npmjs.org/jsx
npm http 200 https://registry.npmjs.org/jsx
npm http GET https://registry.npmjs.org/jsx/-/jsx-0.9.89.tgz
npm http 200 https://registry.npmjs.org/jsx/-/jsx-0.9.89.tgz
npm http GET https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/escodegen
npm http GET https://registry.npmjs.org/source-map-support
npm http GET https://registry.npmjs.org/esmangle
npm http GET https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/escodegen
npm http 304 https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/esmangle
npm http 304 https://registry.npmjs.org/source-map-support
npm http GET https://registry.npmjs.org/estraverse
npm http GET https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/estraverse
npm http GET https://registry.npmjs.org/esshorten
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/escope
npm http 304 https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/optimist
npm http 304 https://registry.npmjs.org/esshorten
npm http 304 https://registry.npmjs.org/escope
npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/minimist
npm http 304 https://registry.npmjs.org/minimist
npm http 304 https://registry.npmjs.org/wordwrap
/Users/suda/.nodebrew/current/bin/jsx -> /Users/suda/.nodebrew/current/lib/node_modules/jsx/bin/jsx
/Users/suda/.nodebrew/current/bin/jsx-profile-server -> /Users/suda/.nodebrew/current/lib/node_modules/jsx/bin/jsx-profile-server
/Users/suda/.nodebrew/current/bin/jsx-with-server -> /Users/suda/.nodebrew/current/lib/node_modules/jsx/bin/jsx-with-server
jsx@0.9.89 /Users/suda/.nodebrew/current/lib/node_modules/jsx
├── esprima@1.0.4
├── escodegen@0.0.28 (estraverse@1.3.2)
├── source-map@0.1.34 (amdefine@0.1.0)
├── source-map-support@0.2.6 (source-map@0.1.32)
└── esmangle@0.0.17 (estraverse@1.3.2, escope@1.0.1, esshorten@0.0.2, optimist@0.6.1)
suda@sahara:~$ jsx --version
0.9.89 (2014-05-20 06:01:03 +0900; 8e8c6105f36f3dfe440ea026a3c93a3444977102)
suda@sahara:~$
```

## References
[node.js の環境管理ツール nodebrew - Block Rockin’ Codes](http://jxck.hatenablog.com/entry/20120224/1330035058)
[node.jsのversionを管理するためにnodebrewを利用する - Qiita](http://qiita.com/sinmetal/items/154e81823f386279b33c)