Macでnode.jsの開発環境を整える(nvm * express)

nvmを使用してnodejsのインストール
パスの設定、Helloworld,ライブラリの依存関係の解決まで






nvmインストール


nvmをインストールすることでnode.jsのアップグレード、バージョン切り替えなどが容易になリます。

以下を参考に
https://github.com/creationix/nvm


ターミナルから以下のコマンド
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
バージョンは変わる可能性があるので注意すること

nvmのパスを通す

ホームディレクトリにある.bash_profileに追記する(ない場合は作成する)


コマンドから、直接編集してもいい
cd ~
vi .bash_profile

.bash_profile へ以下を追記
export NVM_DIR="/Users/[ユーザディレクトリ]/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

.bash_profileの再読み込み
コマンド
source ~/.bash_profile
あるいはターミナル再起動

nvmがインストールされているか確認
nvm -v



nodejsのインストール



ターミナルからコマンド
nvm ls-remote
でインストール可能なnodeの一覧が取得できます。

種類が多すぎて混乱するかもしれないですが
・iojsはフォークされて開発されていたもの。v4から統合された
・偶数バージョンが安定板
・v0.x系のものをインストールする記事が目立つがすでに推奨されていない
http://stackoverflow.com/questions/33551981/difference-between-nodejs-v0-12-and-v5-x-distributions
よって一番数字の大きい偶数のバージョンを選択すれば間違いないはずです

nodeのインストール
以下のコマンドで node.js ver6.9.5をインストール
nvm install v6.9.5

インストール直後ならnodeがそのまま使えるようですがターミナルを再起動すると使えなくなるのでパスを追加します。
cd ~
vi .bash_profile

.bash_profile へ追記
export NVM_DIR="/Users/[ユーザディレクトリ]/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

# 以下を追記
# nvm設定
nvm use 6.9.5
npm_dir=${NVM_PATH}_modules
export NODE_PATH=$npm_dir

nvm use [自分がインストールしたnodeのバージョン]
にすること

.bash_profileの再読み込み
コマンド
source ~/.bash_profile
あるいはターミナル再起動


以下で確認
node -v
npm -v

バージョンが表示されればnodejsのインストール完了



node.jsでHello World


プロジェクトを作成するディレクトリへ移動してnpm init
cd /Users/[userName]/Project/nodejs/HelloWorld
npm init


対話的に設定項目を入力できます
あとで変更可能なのでよくわからない場合はエンター連打でOK

name: プロジェクトの名称
version: プロジェクトのバージョン
description: プロジェクト説明
entry point: エントリーポイント
test command: テスト時に実行するコマンド
git repository: リポジトリのURL
keywords: npm公開時の検索キーワード
author: 作成者名
license: ライセンス


This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (test)
version: (1.0.0)
description: test
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC) MIT
About to write to /Users/shinichiyamada/Project/nodejs/test/package.json:

{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT"
}


Is this ok? (yes) yes

package.json が作成される。

https://nodejs.org/en/about/ を参考にindex.js を作成して以下を入力


var http = require('http');
http.createServer(function(req,res){
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hellow World!!');
}).listen(3000);
console.log('Server running at http://localhost:3000/');

以下のコマンドを入力して http://localhost:3000/ へアクセス
node index.js

Hello Worldと表示されたらOK



Express 導入


最近はプロジェクト毎に依存関係を解決するのがトレンドになっているようなのでそっちで導入します。

http://expressjs.com/ja/starter/installing.html に沿ってやっていきます。

プロジェクトディレクトリで以下のコマンド
npm install express --save

ディレクトリ直下にインストールされたあと package.json に以下が追加されます。

"dependencies": {
"express": "^4.14.1"
}
npm update を行うことでdependencies内のライブラリを更新することができます。
^x.xx.xはx.xx.xと互換性のあるものという意味らしい

index.js を以下のように書き換えます。
var express = require('express');
var app = express();

app.get('/', function (req, res) {
    res.send('Hello Express!!');
});

app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

コマンド
node index.js
実行後 http://localhost:3000/ へアクセスします。
Hello Express!!
と表示されたら成功です。

このままでも実装可能ですが express-generator を使用してスケルトンアプリケーションを作成するほうが簡単のようなのでこれをグローバルインストールします。

npm install express-generator -g

以下のコマンドでexpressのアプリケーションのテンプレートを作成します。
express --view=jade expressApp

expressApp ディレクトリが作成され直下に
app.js
bin
package.json
public
routes
views
が作成されます。

コマンド
npm install
でpackage.jsonのdependenciesに記述されている依存関係をインストールします。

コマンド
DEBUG=expressApp:* npm start
でサーバを起動します。


http://localhost:3000/ へアクセスして
Express

Welcome to Express

と表示されたらOK


エディタはVisual Studio Code がおすすめ
以降は下記を参照のこと



参考


https://nodejs.org/ja/
http://expressjs.com/ja/
http://liberty-technology.biz/PublicItems/npm/package.json.html
http://qiita.com/tagosaku324/items/bf1fe149c38c99728c72


2017年2月15日水曜日