如何快速地使用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