NVM Node.js 導入 使い方

Gruntを入れる前に Node.Js で気をつける事など

もはやメジャーになった Node.js サーバーまでJSで書けるということで、色々話題の代物。
フロントエンドエンジニアでは、GruntやGulpでの環境で使用するのが多いと思う。
なので Grunt 寄りの環境で紹介する。

Node.js とは? 概要 特長

  • Node.js はサーバー・サイドの JavaScript インタープリター(サーバープログラム)
  • イベント駆動型プログラミング…らしい
  • 大量の同時接続を高速に処理するのに向いている。ノンブロッキングI/O(非同期処理)というモデルで実現されている…らしい。
  • 「スケーラブルなネットワーク・プログラムを作成するための簡単な方法を提供すること」が Node.js の第 1 の目標…らしい
  • 拡張性が高く、小規模にも大規模にもで対応できる…らしい。
  • モジュールインストールで色々できる
  • シングルスレッドベースの非同期処理環境 シングルなのに「イベントループ」アーキテクチャ(構築、構造)で実現している…らしい
  • ローカルの開発環境向上にも使える。

いろいろすごい事ができるらしいけど、私はローカル開発環境の向上をするばかりに使用。

Grunt とか Jade とか Coffee とか Sass とか


なぜNVMを使うのか?

Node.jsはバージョンアップが盛んで、バージョンが違うと使えないものがあったりする。
バージョンを上げたり、落としたり、入れたり削除したりが面倒なので、
パッケージ管理できると、とても便利。
Ruby の rvm みたいなもの


NVM インストール

1 git で NVM 落としてくる

1
git clone git://github.com/creationix/nvm.git ~/.nvm

2 nvm 有効化 ロード 2 nvm シェルから見えるようにする .zsh*(.zshrc、.zshenv) .bash_profileに追記

1
2
3
source ~/.nvm/nvm.sh
or
[[ -s "$HOME/.nvm/nvm.sh" ]] && source "$HOME/.nvm/nvm.sh"

3 nvm デフォルトを設定する .zsh*(.zshrc、.zshenv) .bash_profileに追記

1
2
3
4
5
[[ -s "$HOME/.nvm/nvm.sh" ]] && source "$HOME/.nvm/nvm.sh"

nvm use default
npm_dir=${NVM_PATH}_modules
export NODE_PATH=$npm_dir

4 node.js インストール

1
2
nvm install v0.10
//0.10.0ではStreaming API が新しいらしい

以上。

NVMでなく、インストーラを使用した場合以下に追加され、PATHが追記される。
正直オススメしない。

1
2
/usr/local/bin/node
/usr/local/bin/npm

NVM 使い方 基本コマンド

・インストール可能な Node.js のバージョンを確認

1
nvm ls-remote

・Node.js インストール (0.10.0ではStreaming API が新しいらしい)

1
2
3
nvm install v0.10.24 //バージョン指定でインストール
nvm install v0.10 //0.10.x系 最新バージョンインストール
nvm install v0 //0.x系 最新バージョンインストール

・Node.js インストール済 バージョン一覧

1
nvm ls

・Node バージョン指定 有効化 (シェルプロファイルに基本バージョンを指定しないと、毎回指定)

1
nvm use v0.10

・node バージョン確認

1
2
node -v
node --version

・現在の バージョン確認

1
nvm current

・nvm use コマンドを指定する。 プロファイル記述でなく指定する

1
nvm alias default v0.10

・pakage.json から必要なライブラリをインストール node_modudeDirectory に package_json で指定されたライブラリをインストール

1
npm install

・packge_json で実行する

1
2
3
4
5
6
7
8
9
{
  "name": "hoge",
  "version": "0.0.1",
  "description": "hoge!",
  "main": "server.js",
  "scripts": {
    "test": "mocha test/**/*.test.js",
    "start": "node server.js"
  }

・実行

1
2
3
npm start
or
npm server.js

・nvm と指定されたバージョンの Node.js がインストール済みの場合だけ設定を有効にする

1
2
3
4
5
6
7
8
9
10
11
12
if [[ -f ~/.nvm/nvm.sh ]]; then
  source ~/.nvm/nvm.sh

  if which nvm >/dev/null 2>&1 ;then
    _nodejs_use_version="v0.4.0"
    if nvm ls | grep -F -e "${_nodejs_use_version}" >/dev/null 2>&1 ;then
      nvm use "${_nodejs_use_version}" >/dev/null
      export NODE_PATH=${NVM_PATH}_modules${NODE_PATH:+:}${NODE_PATH}
    fi
    unset _nodejs_use_version
  fi
fi

Win Nvm設定

以前 Win 環境で使わなければならなかった時に設定した方が良いと思ったこと
使用環境 Win-7 Professional mac-OSX

・nvmw を導入 (win版)

1
git clone git://github.com/hakobera/nvmw.git "C:\Users\ユーザ名\.nvmw"

Winはいつも、ディレクトリが特殊で環境パスでいつも迷ってしまう。 .gem とか .ssh とか置く場所あたりが良いと思う

先にnpmから入れちゃったから面倒 npm のパスは下のような感じ

1
C:\Users\tsumiki\AppData\Roaming\npm

・環境変数例

1
C:\Ruby200-x64\bin;C:\Ruby200\bin;C:\Users\tsumiki\AppData\Roaming\npm;C:\Users\sawasawato\.nvmw

cmd.exe 起動時、オートコマンド実行

Node を nvmw で管理、Ruby を rvm で管理するときに、毎回コマンドを打つ手間があって面倒だったため
macはbashrcをいじればいいものの、Winだとかなり手間

方法はレジストリに設定。 (ふっ飛ばさないように)この方の記事がよい。 win7なので各自
これと同じようにすれば、rvmのデフォルト設定もできる。
でもバッチとか使う時にこれが原因でエラーが出た事もあった…

・windows でコマンドのエイリアス設定(DOSKEY)

http://www.adminweb.jp/command/command/index2.html

http://c4se.hatenablog.com/entry/2012/10/19/230718

・レジストリで起動パスを記述する
レジストリを立ち上げた後、右クリック修整で下のパスを記述

1
C:\Users\tsumiki\cmd_profile.bat  

・バッチファイルで管理

1
C:\Users\tsumiki\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

参考サイト