1. oden

    Posted

    oden
Changes in title
+Heroku:(Application Errorにならないための)Node.jsアプリのデプロイ入門
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,144 @@
+
+Node.jsで作成したWebアプリ(Git管理)のデプロイ方法です。
+個人的にハマったApplication Errorについても記載しています。
+
+```バージョン
+ "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)
+"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)
+
+
+
+