macOS High Sierra 上に nodebrew で Node.js 開発環境を構築する

仕事で新しくWebシステムを作成することになりました。規模もそこまで大きくないので、Python+Flaskで作成で良いだろうと思っていたところ、若手からNode.jsで書かせろ!とのこと。私もエンジニアとして老害化が進んで来ているのでは?と悲しい気持ちになりました。

スポンサーリンク
Google Ad




Node.jsを改めて勉強しよう

実は過去何度かNode.jsには挑戦しています。JavaScriptは言語として好きですし、Webエンジニアを自称する身としてもサーバサイドとフロントサイドを同じ言語で記述できることに魅力を感じています。しかしながら、Node.jsの非同期型のイベント駆動モデルを理解仕切ることができず毎回挫折しています。せっかくの機会です。老害化への恐怖をモチベーションにもう一度Node.jsに挑戦してみましょう。

まずは、開発環境を最近のメイン環境であるmacOS(High Sierra)上に構築しないといけません。Node.jsの公式サイトからmacOS向けのバイナリがダウンロード可能ですが、Node.jsについてもrubyenvやpyenvのようなバージョン管理の仕組みがあるはずです。探してみると、nvmnodebrewが使えそうです。両方ともmacOS、Linux環境で使えるようです。評判の良さそうなnodebrewでNode.js環境を構築することにしました。

nodebrewをインストール

nodebrewの公式サイトの指示に沿って環境構築を行います。ターミナルからperlで書かれたインストールスクリプトを実行します。

$ curl -L git.io/nodebrew | perl - setup

私はログインシェルとして zsh を使っているので、 $HOME/.zshrc に次ぎの3行を追加します。

if [ -d "$HOME/.nodebrew/current/bin" ]; then
        export PATH=$HOME/.nodebrew/current/bin:${PATH}
fi

編集した .zshrc を読み込んで 「nodebrew help」コマンドで nodebrew のヘルプが表示されれば nodebrew のインストールは完了です。

$ source ~/.zshrc
$ nodebrew help
nodebrew 1.0.0

Usage:
    nodebrew help                         Show this message
    nodebrew install <version>            Download and install <version> (from binary)
    nodebrew compile <version>            Download and install <version> (from source)
    nodebrew install-binary <version>     Alias of `install` (For backword compatibility)
    nodebrew uninstall <version>          Uninstall <version>
    nodebrew use <version>                Use <version>
    nodebrew list                         List installed versions
    nodebrew ls                           Alias for `list`
    nodebrew ls-remote                    List remote versions
    nodebrew ls-all                       List remote and installed versions
    nodebrew alias <key> <value>          Set alias
    nodebrew unalias <key>                Remove alias
    nodebrew clean <version> | all        Remove source file
    nodebrew selfupdate                   Update nodebrew
    nodebrew migrate-package <version>    Install global NPM packages contained in <version> to current version
    nodebrew exec <version> -- <command>  Execute <command> using specified <version>

Example:
    # install
    nodebrew install v8.9.4

    # use a specific version number
    nodebrew use v8.9.4

nodebrew で Node.js をインストール

nodebrew が使えるようになったので、実際に Node.js をインストールしていきます。

まずは、インストール可能な Node.js のバージョンを調べます。

$ 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

・・・

v10.0.0   v10.1.0   v10.2.0   v10.2.1   v10.3.0   v10.4.0   v10.4.1   v10.5.0


io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4 io@v1.1.0 io@v1.2.0 io@v1.3.0
io@v1.4.1 io@v1.4.2 io@v1.4.3 io@v1.5.0 io@v1.5.1 io@v1.6.0 io@v1.6.1 io@v1.6.2
io@v1.6.3 io@v1.6.4 io@v1.7.1 io@v1.8.1 io@v1.8.2 io@v1.8.3 io@v1.8.4

io@v2.0.0 io@v2.0.1 io@v2.0.2 io@v2.1.0 io@v2.2.0 io@v2.2.1 io@v2.3.0 io@v2.3.1
io@v2.3.2 io@v2.3.3 io@v2.3.4 io@v2.4.0 io@v2.5.0

io@v3.0.0 io@v3.1.0 io@v3.2.0 io@v3.3.0 io@v3.3.1

リリースされた Node.js の各バージョンがインストール可能なことがわかります。安定板「stable」と最新版「latest」をインストールしておきます。

$ nodebrew install-binary stable
Fetching: https://nodejs.org/dist/v10.5.0/node-v10.5.0-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully

$ nodebrew install-binary latest
v10.5.0 is already installed

2018年6月時点ではv10.5.0が最新版であり安定版のようです。一世代前の安定板についてインストールをしておきます。

$ nodebrew install-binary v8.11.3
Fetching: https://nodejs.org/dist/v8.11.3/node-v8.11.3-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully

普段は現時点での安定版を利用します。zsh を利用しているので $PATH のリロード(rehash)をしてNode.jsのバージョンを確認してみます。

$ nodebrew use stable
use v10.5.0

$ nodebrew ls
v8.11.3
v10.5.0

current: v10.5.0

$ rehash

$ node -v
v10.5.0

$ npm -v
6.1.0

v8.11.3に切り替えてみます。

$ ls -l ~/.nodebrew/current
lrwxr-xr-x  1 moto  staff  34  6 26 18:47 /Users/moto/.nodebrew/current@ -> /Users/moto/.nodebrew/node/v10.5.0

$ nodebrew use v8.11.3
use v8.11.3

$ nodebrew ls
v8.11.3
v10.5.0

current: v8.11.3

$ ls -l ~/.nodebrew/current
lrwxr-xr-x  1 moto  staff  34  6 26 18:49 /Users/moto/.nodebrew/current@ -> /Users/moto/.nodebrew/node/v8.11.3

$ node -v
v8.11.3

$ npm -v
5.6.0

なるほど。$HOME/node/current をシンボリックリンクで切り替えているだけなんですね。

nodebrew の問題

nodebrew は「nodebrew use 」で利用する Node.js のバージョンを切り替えることができて便利です。しかし、rbenv や pyenv のようにディレクトリ単位でバージョンを変更することができません。そこで、さらに調べてみるとNode.jsにもndenvというバージョン管理ツールがあることがわかりました。

さらに、調べるとrbenvやpyenv、ndenvなどの「**env」をまとめたanyenvが存在することが分かりました。後ほどanyenvについても調べてみようと思います。

スポンサーリンク
Google Ad




Google Ad




シェアする

  • このエントリーをはてなブックマークに追加

フォローする