我有一个存储库https://github.com/ibnclaudius/express-mongoose-es6-rest-api的克隆,我想部署到Heroku。在部署中,说明如下:
# compile to ES5
1. npm run build or gulp
# upload dist/ to your server
2. scp -rp dist/ user@dest:/path
# install production dependencies only
3. npm i --production
# Use any process manager to start your services
4. pm2 start dist/index.js
在制作中,您需要确保您的服务器始终处于启用状态 理想情况下应该使用此处推荐的任何流程管理器。我们 推荐pm2,因为它有几个有用的功能,就像它可以 配置为在重新启动系统时自动启动服务。
我不知道该怎么办。如何按照建议进行部署,但是在Heroku的上下文中?我试图通过Heroku CLI发送但没有成功。
我尝试了什么:
npm run build
cd dist/
git init
heroku git:remote -a farm-rooster
git add .
git commit -am "Início"
git push heroku master
应用程序日志:
2016-10-09T23:33:33.364424 + 00:00 app [web.1]:npm ERR!你可以得到 有关如何使用以下方式解决此项目问题的信息:
2016-10-09T23:33:33.364648 + 00:00 app [web.1]:npm ERR!或者如果那不是 可用,您可以通过以下方式获取他们的信息:
2016-10-09T23:33:33.364968 + 00:00 app [web.1]:npm ERR! npm所有者ls 表达-猫鼬-ES6-REST的API
2016-10-09T23:33:33.365079 + 00:00 app [web.1]:npm ERR!有可能 上面的额外日志输出。
2016-10-09T23:33:33.368518 + 00:00 app [web.1]:
2016-10-09T23:33:33.368965 + 00:00 app [web.1]:npm ERR!请包括 包含任何支持请求的以下文件:
2016-10-09T23:33:33.369132 + 00:00 app [web.1]:npm ERR!
/app/npm-debug.log2016-10-09T23:33:33.469487 + 00:00 heroku [web.1]:状态由 开始崩溃
2016-10-09T23:33:33.457348 + 00:00 heroku [web.1]:流程已退出 状态1
2016-10-09T23:33:35.414253 + 00:00 heroku [router]:at = error code = H10 desc =" App崩溃" method = GET path =" /"主机= farm-rooster.herokuapp.com request_id = e88f1c0e-4ea5-4610-82d6-b437bf37ea0e fwd =" 186.203.235.191" dyno = connect = service = status = 503 bytes =
2016-10-09T23:33:36.117238 + 00:00 heroku [router]:at = error code = H10 desc =" App崩溃" method = GET path =" /favicon.ico" 主机= farm-rooster.herokuapp.com request_id = c8859482-b508-4e93-b9dc-3455558d13ed fwd =" 186.203.235.191" dyno = connect = service = status = 503 bytes =
答案 0 :(得分:0)
1 - 您可以尝试在项目中添加Procfile,然后再将其发送给Heroku。我认为它应该像web: npm run start
。
2 - 您不应该只将dist文件夹发送给Heroku,您应该发送整个项目。 Heroku将构建它然后运行(这是Heroku的功能之一)。
3 - 建议使用PM2,以便在应用程序中断时对其进行监控并重新启动。 Heroku将为您做到这一点,所以我不认为在这里使用PM2非常有用
答案 1 :(得分:0)
只是要明确说明Procfile
和处理/dist
文件夹
Procfile
要确定如何启动您的应用,Heroku首先寻找Procfile。 如果Node.js应用程序不存在Procfile,我们将尝试启动 默认的Web进程通过package.json中的启动脚本。因此,您可以拥有Procfile,也可以在package.json中定义“开始”部分。例如
"start": "node server.js"
/dist
文件夹
您有两个选择
dist
文件夹与其他应用程序内容一起推送到heroku。dist
并将其保留在gitignore文件中。在package.json中使用postintall script
创建/ dist文件夹"postinstall": "ng build --prod"
postinstall script