下記、作業用備忘です。もし、間違いあれば指摘・コメント頂けるとありがたいです。
##対象
・サーバーの設定とかめんどくさい、手早く基盤を構築して、アプリ開発したい人
・サーバーサイド言語をいちいち覚えたくない人(JS大好きな人)
・将来的には、Websocketとか使って先進的なサービスを企む人
##事前準備 (以下、全てMac環境前提にしてます)
下記がインストールされていること
npm
node
express
(npm install -g express でインストールしましょう)
heroku tool belt
git
herokuのアカウント作成
##ローカル環境構築
・不安症の人は、インストールとバージョン確認(省略可)してから。。。
node -v
npm -v
express --version
heroku --version
git --version
・プロジェクトの作成(アプリひな形の作成) ※下記のsampleはアプリ名
//アプリひな形の作成
// -eはejsを使う場合。jadeを使う場合は-eはなくてOK
express sample -e
//作成されたプロジェクトフォルダに移動
cd sample
※プロジェクトフォルダに作成されたpackage.jsonの編集。package.jsonは追加したいパッケージ(モジュール)をjson形式で記述。後からでも追加は出来るので、まずは、なにも変更しなくてOK
//パッケージのインストール
sudo npm install
//Nodeサーバーの起動
node app.js
・ブラウザで以下にアクセスして「Welcome to Express」が出ていればOK
http://localhost:3000/
##heroku環境構築
//プロジェクトルート直下(Package.jsonがあるフォルダ)で下記実行
//herokuにアプリを作成(sampleはアプリ名)
heroku create sample
//成功すると アプリURLとgitURLが表示される(後々使います)
http://sample.herokuapp.com/ | git@heroku.com:sample.git
Procfileの作成
(下記一行のファイルを作成する。herokuにこれから登録するアプリケーションの種類を教えてあげます)
web: node app.js
※Profileじゃないよ。大文字小文字に注意、間違えると修正が少し面倒
.gitignoreの作成
(下記の2行のファイル。先頭のドットは必須)
※ モジュールはheroku側で別途インストールされるので、gitのpush対象外としてモジュールフォルダを設定します
node_modules
.DS_Store
・Package.jsonにenginesの追加
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "3.1.0",
"jade": "*"
},
"engines": {
"node": "0.8.4",
"npm": "1.1.49"
}
}
※ 後続のherokuへpushするときにモジュールの追加が上手くいかない場合、engines、dependenciesのバージョンの組み合わせに注意する(herokuで使用できるバージョンは公式サイトより参照可)
・Gitに登録する
git init
git add .
git commit -m "initial commit"
//git remoteは最初の一回だけ
git remote add heroku git@heroku.com:sample.git
git push heroku master
・後はローカルでソースいじって変更したら、以下だけでデプロイ完了
$ git add .
$ git commit -m "modify hoge"
$ git push heroku master
・ブラウザで以下にアクセスして「Welcome to Express」が出ていればOK
http://sample.herokuapp.com/
※上記URLはダミー。
##トラブルシューティング
###偉人の知恵をお借りします。
・herokuのpushするとこでkeyなんちゃらエラーが出た場合
http://tacamy.hatenablog.com/entry/2013/02/16/235127