[英]Deploy nodejs application to Heroku
我有一個存儲庫的克隆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 owner ls express-mongoose-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 =錯誤代碼= H10 desc =“應用程序崩潰”方法= GET路徑=“ /”主機= farm-rooster.herokuapp.com request_id = e88f1c0e -4ea5-4610-82d6-b437bf37ea0e fwd =“ 186.203.235.191” dyno = connect = service = status = 503字節=
2016-10-09T23:33:36.117238 + 00:00 heroku [router]:at =錯誤代碼= H10 desc =“應用程序崩潰”方法= GET路徑=“ / favicon.ico”主機= farm-rooster.herokuapp.com request_id = c8859482-b508-4e93-b9dc-3455558d13ed fwd =“ 186.203.235.191” dyno = connect = service =狀態= 503字節=
1-您可以先將Procfile添加到項目中,然后再將其發送到Heroku。 我認為它應該像web: npm run start
。
2-您不應該只將dist文件夾發送到Heroku,而應該發送整個項目。 Heroku將構建它然后運行(這是Heroku的功能之一)。
3-建議使用PM2,以便監視您的應用程序並在其中斷時重新啟動。 Heroku會為您做到這一點,所以我認為在這里使用PM2並不是真的有用
只是為了清楚地說明Procfile
和處理/dist
文件夾
Procfile,
為了確定如何啟動您的應用,Heroku首先尋找一個Procfile。 如果Node.js應用程序不存在Procfile,我們將嘗試通過package.json中的啟動腳本啟動默認的Web進程。 因此,您可以擁有Procfile,也可以在package.json中定義“開始”部分。 例如
"start": "node server.js"
/dist
文件夾
你有兩個選擇
dist
文件夾與其他應用程序一起推送到heroku。 dist
並將其保留在gitignore文件中。 在package.json中使用postintall script
創建/ dist文件夾"postinstall": "ng build --prod"
后安裝腳本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.