1. oden

    No comment

    oden
Changes in body
Source | HTML | Preview
@@ -1,144 +1,144 @@
Node.jsで作成したWebアプリ(Git管理)のデプロイ方法です。
個人的にハマったApplication Errorについても記載しています。
-```バージョン
+```version
"node" : "v4.1.1",
"npm" : "2.14.4",
"express": "^4.13.4"
```
#ローカル準備編
##Procfileを作成
アプリの起動コマンドを記述します。
アプリの第一階層に設置します。
```Procfile
web: node server.js
```
##package.json/"dependencies"に使用しているパッケージを全て記述。
server側で使用しているパッケージを記述します。
ひとつでも抜けていると"Application Error"になるので注意してください。
-```ex)
+```package.json
"dependencies": {
"body-parser": "^1.14.2",
"express": "^4.13.4",
"gulp-plumber": "^1.0.1",
"request": "2.61.0"
}
```
cf. ["dependencies"の説明](http://liberty-technology.biz/PublicItems/npm/package.json.html#dependencies)
もしApplication Errorが出る場合は
使用しているパッケージが記述されているか確認してみてください。
僕の場合はグローバルインストールしていたパッケージが
抜けていたためにハマりました。
##ポート番号の記述を変更
```server.js
app.listen(8000);
```
↓↓↓
```server.js
app.listen(process.env.PORT || 8000);
```
これはかなりハマりました。。。
Herokuでは明示的にポート番号を指定する必要があります。
##.gitignoreを追加
既にGitHubにpushしていたら設置済みかもしれませんが
node_modulesを除外する設定を記述します。
```.gitignore
node_modules/
```
##package.jsonに"engines"を追加、
アプリを堅牢にするため
verstionの末尾を"X"にしておくと良いそうです。
```package.json
"engines": {
"node": "v4.1.X",
"npm": "2.14.X"
}
```
cf.["engines"の説明](http://liberty-technology.biz/PublicItems/npm/package.json.html#engines)
#Herokuにデプロイ編
##HerokuへSignUpしてアプリを追加します。
こちらが詳しいです。
[今からはじめるReact.js〜Herokuへのデプロイ〜](http://qiita.com/kuniken/items/70c2b5cd77d7c9301bcf)
HerokuのDashboardから
追加したアプリのDeployページへ移動すると
デプロイ方法が書いてありますのでそれに従いましょう。
![heroku_deploy.jpg](https://qiita-image-store.s3.amazonaws.com/0/23451/d458140e-076b-247a-b0f3-80e21d3349b6.jpeg "heroku_deploy.jpg")
##heroku toolbeldのインストール
Herokuコマンドが使えるようになります。
https://toolbelt.heroku.com/
##Herokuへログインします。
```
$ heroku login
```
##リモートリポジトリにHerokuアプリを追加します
```
$ cd [my-project]/
$ git init //既にgitをinitializeしている場合は不要
$ heroku git:remote -a [my-app-name]
```
##gitにcommitし、Herokuにpushしてデプロイ完了です!
```
$ git add .
$ git commit -am "make it better"
$ git push heroku master
```
無事デプロイに成功すると
```
remote: Verifying deploy.... done.
To https://git.heroku.com/[my-app-name].git
xxxxxxx..xxxxxx master -> master
```
と表示されるはずです。
__おつかれさまでした!__
<br>
####▼ちなみにもういったん消しちゃうときはコチラ
```リモートリポジトリ削除
git remote remove heroku
```
<br>
##参考リンク
[Node.js + Express を Heroku で動かすまでの手順まとめ](http://tacamy.hatenablog.com/entry/2013/02/16/235127)
[今からはじめるReact.js〜Herokuへのデプロイ〜](http://qiita.com/kuniken/items/70c2b5cd77d7c9301bcf)
[Express4 + mongoDBアプリケーションをherokuで動かす](http://qiita.com/runtBlue/items/0731f6f9d4bd27cd2dbd)
[Node.jsをHerokuへデプロイ](http://qiita.com/yoh-nak/items/80e51197410c7f956ccd)
[Node.jsのアプリをHerokuにデプロイするときポート番号に気をつけなくちゃいけない](http://qiita.com/KENJU/items/1d61c9fb45496feed1bf)
[Heroku + node.js error (Web process failed to bind to $PORT within 60 seconds of launch)](http://stackoverflow.com/questions/15693192/heroku-node-js-error-web-process-failed-to-bind-to-port-within-60-seconds-of)