Node.js環境を作る

プラットフォーム別のNode.js環境構築メモ


    CentOS6/Linux

    CentOSの場合、nodejsとnpmの各パッケージはEPELレポジトリに収録されている。EPELを使用可能にするにはこちらを参照のこと。これが済んでいればyumだけで基本環境のインストールが出来る。

    sudo yum install nodejs npm  
    

    ただしこれでOSにインストールされるのはやや古いバージョンである。

    $ node -v
    v0.10.33  
    $ npm -v
    1.3.6  
    

    異なるバージョンのNode.jsが必要な場合はnvmを使用して切り替える。まずnvmコマンドをgitでダウンロードし、添付のスクリプトを実行して導入する。1

    $ git clone https://github.com/creationix/nvm.git ~/.nvm
    Initialized empty Git repository in ~/.nvm/.git/  
    remote: Counting objects: 3595, done.  
    remote: Compressing objects: 100% (20/20), done.  
    remote: Total 3595 (delta 7), reused 0 (delta 0), pack-reused 3574  
    Receiving objects: 100% (3595/3595), 765.49 KiB | 304 KiB/s, done.  
    Resolving deltas: 100% (2060/2060), done.
    
    $ source ~/.nvm/nvm.sh
    

    nvmコマンドはエイリアスとしてシェル環境変数に組み込まれるため、新たな端末を開く度にnvm.shを再実行する必要がある。毎回使用するなら~/.bashrc等に追記しておくと良い。

    初期状態ではsystemインストールされたNode.jsが使われているのでnvm currentを実行するとsystemが返る。

    $ nvm current
    system
    
    $ which node
    /usr/bin/node
    

    取り敢えず最新のNode.jsを使えるようにするには次のようにするだけで良い

    $ nvm install 0
    ######################################################################## 100.0%
    Now using node v0.12.2 (npm v2.7.4)
    
    $ nvm current
    v0.12.2
    
    $ node -v
    v0.12.2
    
    $ which node
    ~/.nvm/versions/node/v0.12.2/bin/node
    

    上記のようにnvmでインストールされるnodeコマンドは、ユーザ環境毎に独立している。環境切替はシェル環境変数に依るので、systemサービスレベルでNode.jsを使用する場合は注意しなければならない。

    なおsystemおよびnvmで導入したnodeコマンドと各グローバルnode_modulesパスは次のようになる。これはつまりnpm install -gで書き換えられる先がsudo不要になるということでもある。

    |\|system|nvm|
    |-:|:-|:-|
    |node|/usr/bin/node|~/.nvm/versions/node/[VER]/bin/node|
    |npm|/usr/bin/npm|~/.nvm/versions/node/[VER]/bin/npm|
    |modeules|/usr/lib/node_modules|~/.nvm/versions/node/[VER]/lib/node_modules|
    

    Mac OSX

    Mac OSXの場合、公式サイトからインストーラパッケージをダウンロードしてきて実行するのがもっとも手軽だろう。だがnpmコマンドで各モジュールをインストールする段階でネイティブビルド環境(Xcode)を要求されたりすると途端に面倒なことになり、最終的な手間は以下のどれをとっても結局は大差なくなる。

    1. 公式サイトからインストーラを得て導入(/usr/local/bin/node)
    2. 公式サイトまたはGitHubからソースを得て./configure && make
    3. Mac Ports環境で port install nodejs(/opt/local/bin/node)

    1番以外は結局Xcodeがなければ話にならない。なおXcode(それ自体はAppStoreから入手できる)のコマンドライン・デベロッパ・ツールの追加インストールは以下のコマンドをターミナルで実行する。2

    $ xcode-select --install
    

    nvmでのバージョン切替はLinuxと同じなので前項を参照のこと。


    Windows

    Windowsの場合はだいたい以下のシナリオがある。

    1. 公式サイトからインストーラを得て導入
    2. Visual Studio(Expressの場合はfor Web)にNTVSアドオンを追加する
    3. CygwinあるいはMinGW環境でGitHunソースからmakeする
    4. nodistで導入する

    基本は1番だが、おすすめはWindowsらしい強力なIDEと一体化できる2番を更に追加した環境だ。開発PCでは1+2番、サービスサーバでは1番だけという使い分けが良いだろう。3番は余程の物好きでない限りおすすめしかねる。4番はもはやふるいやり方だがZIP配布なのでレジストリを汚すこともなくコンパクトな環境を作れるが環境変数設定等は全て手動なのでGUIインストーラを使えない場合の代替手段と見たほうが良い。3 4

    nvmでのnodeバージョン管理はnvmwnvm-windowsの2通りの実装がある。
    前者はPython2.7+が更に必要なので、ActivePython等のインストールが要求される。後者ならスタンドアロンインストーラ配布なので手軽だ。


    1. git自体はCentOSの場合は標準レポジトリに属しているので、もしなくてもyum install gitで導入できる。

    2. 実行するにはかつてはApple Developer Member登録が必須だったが、いまはそんなことはない?

    3. 自分の場合最初はnodistで環境構築したため、便宜上追記した。

    4. その後マルチプラットフォーム対応の Visual Studio Codeが公開されたため、環境構築の選択肢は更に増えた。

    RECENT LINKS