3
1

More than 5 years have passed since last update.

mern-starterを取り急ぎherokuで実行させる方法

Posted at

「MongoDB + Express + React + nodeの良いboilerplateないかな〜。。」

mern-starterがあるじゃないか!」

と思ったけどherokuでどうやって実行させるんだろ〜、とあれこれやったのでその備忘です。

<注意>以下手順を行なった時のmern-starterのバージョンは2.0.0です。

手順

webpackをdevDependenciesからdependenciesに持ってくる

package.json
"webpack": "2.1.0-beta.8",

"devDependencies"から"dependencies"に移動。
なぜかwebpackがserver.bundle.js(ビルドされたサーバーサイドのファイル)でrequireされているため。

クライアントでbuildする

$ npm run clean
$ npm run build
$ npm run build:server

distフォルダが作成され、その下にクライアント・サーバー両方のファイルがビルドされて配置される。

distフォルダを.gitignoreから外す

dist

をコメントアウトまたは削除する。
一つ前の手順で作ったファイルをherokuにあげるため。

Procfileの作成

web: npm run start:prod

これによりherokuでNODE_ENV=productionという環境変数を設定した状態でサーバーが起動される。

MONGO_URLをMONGODB_URIに変更する

server/config.js
  mongoURL: process.env.MONGO_URL || 'mongodb://localhost:27017/mern-starter',

MONGO_URLMONGODB_URIに書き換える。
herokuで使うmLab MongoDBアドオンがURLの環境変数としてMONGODB_URIを自動で設定するため。

herokuのappを設定

$ heroku create [app_name]
$ heroku addons:create mongolab:sandbox --app [app_name]

でherokuのappを作成してMongoDBのアドオンを追加。

herokuにpushする

$ git add .
$ git commit -anm "first commit"
$ git push heroku master

以上

https://[app_name].herokuapp.com/
にアクセスして確認する。

環境

端末はMacBook Air(macOS Sierra)です。

$ sw_vers -productVersion
10.12
$ npm -v
3.8.3
$ node -v
v5.10.1
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1