如何快速地使用Heroku来运行MERN Starter?

有没有一个好的MongoDB + Express + React + Node.js的基板可以使用呢~。。

「不是有mern-starter的嘛!」

虽然我一开始想到了在Heroku上如何执行,但我还是进行了一些尝试和操作,这是我的备忘录。

请注意,执行以下步骤时使用的mern-starter版本为2.0.0。

程序

将webpack从devDependencies移到dependencies中。

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

将”devDependencies”中的模块移动到”dependencies”中。
原因是webpack在server.bundle.js(已构建的服务器端文件)中进行了require操作。

在客户端进行构建

$ 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。

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

将`MONGO_URL`替换为`MONGODB_URI`。
由于在Heroku上使用mLab MongoDB附加组件会自动将URL设置为环境变量`MONGODB_URI`。

设置Heroku应用

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

创建一个Heroku应用程序并添加MongoDB的附加组件。

将代码推送到Heroku

$ 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