読者です 読者をやめる 読者になる 読者になる

blog @arfyasu

プログラミングとか趣味のこととか

nvm で作る Node.js の環境構築(+ Hello world)

はじめに

react の環境構築をしようとしたところ、npm が必要でした。
npm は Node.js のパッケージ管理ツールで ruby でいう gem みたいなものでしょうか。

ということで、今更感満載ですが、Node.js をインストールして npm コマンド実行出来るようにして、ついでに Node.js で Hello world やってみようと思います。

https://nodejs.org/static/images/logos/nodejs.png

環境

Mac OS X Yosemite 10.10.5
git 2.5.4

nvm のインストール

nvm は Node.js のバージョン管理マネージャです。
Node.js を複数バージョンインストールして簡単に切り替えできるツールです。
ruby でいう rbenv や rvm みたいなものですかね。

インストール
$ git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
パスを通す
$ . ~/.nvm/nvm.sh
$ nvm --version
0.30.2

以下を、~/.bashrc 等に追記して、起動時に読込むようにします。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
バージョンアップ

nvm をバージョンアップする場合は、以下のコマンドを実行します。

cd ~/.nvm && git pull origin master && git checkout `git describe --abbrev=0 --tags

Node.js のインストール

続けて Node.js をインストールします。

インストールバージョン確認
$ nvm ls-remote
        v0.1.14
...
         v5.4.0
         v5.4.1
         v5.5.0

奇数バージョンは最新機能版、偶数バージョンは長期サポート版
ということらしいので、僕の環境では特に安定版を使う理由はありませんが、せっかくなので両方入れてみます。

インストール
$ nvm install 4.2
Downloading https://nodejs.org/dist/v4.2.6/node-v4.2.6-darwin-x64.tar.gz...
######################################################################## 100.0%
WARNING: checksums are currently disabled for node.js v4.0 and later
Now using node v4.2.6 (npm v2.14.12)
$ nvm install 5.5
######################################################################## 100.0%
WARNING: checksums are currently disabled for node.js v4.0 and later
Now using node v5.5.0 (npm v3.3.12)

WARNING 出てます?

バージョン確認
$ node -v
v5.5.0
$ npm -v
3.3.12
インストール確認

ls コマンドを使うと、インストール済みのバージョンを確認することが出来ます。

$ nvm ls
 nvm ls
         v4.2.6
->       v5.5.0
node -> stable (-> v5.5.0) (default)
stable -> 5.5 (-> v5.5.0) (default)
iojs -> N/A (default)

両方インストールされたことが確認できますね。

バージョンの切替え

use コマンドを使用して、使用するバージョンを切替えることができます。

$ nvm use 4.2.6
Now using node v4.2.6 (npm v2.14.12)
$ node -v
v4.2.6
$ npm -v
2.14.12
デフォルトバージョンの指定

毎回 use でバージョン指定をしなくてもいいよう、デフォルトで使用するバージョンを指定しておきます。

$ nvm alias default 5.5.0

Hellow Node.js

ついでに、Hello world やっておきます。

サンプルファイル作成

以下のコードをhello.js というファイル 名で保存します。

const http = require('http');

const hostname = '127.0.0.1';
const port = 1337;

http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
}).listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
実行

以下コマンドを実行します。

$ node hello.js
Server running at http://127.0.0.1:1337/

ブラウザで http://127.0.0.1:3000/ にアクセスすると、以下の画面が表示されるはずです。

まとめ

nvm をインストールしてから同じようなツールとして nodebrew があることを知りました。
nvm は bash 以外と相性が悪いらしいので、z-shell 使ってる人は nodebrew 使ってるみたいですね。

nvm の環境壊して nodebrew に切り替えるのは面倒なので、差し当たり nvm をそのまま使おうと思います。
何かのタイミングで切り替えるかもしれないけど。

始めて Node.js のコードを見ましたが、Hello world だけだとよく分からないですね。
使う機会があれば本格的に勉強すると思うけど、Elixir / Phoenix の方が個人的には気になります。

いずれにしても、また別の機会に使ってみようと思います。

これで npm コマンドが使えるようになったので、React に必要なパッケージをインストール出来るようになりました。
ちなみに、npm と似たもので bower があるけど、両者の違いが分からない・曖昧な人はこの記事がすっきりさせてくれるはずです! qiita.com

それでは!

参考

https://github.com/creationix/nvm
http://liginc.co.jp/web/programming/node-js/85318