#node.js #express #heroku #create-react-app
#node.js #экспресс #heroku #создать-реагировать-приложение
Вопрос:
У меня есть create-react-app, который без проблем создает и развертывает Heroku. Однако в этом приложении у меня есть экспресс-сервер, который мне нужно запустить после его развертывания. Пока я могу запустить его только на полпути через сборку Heroku, что означает, что развертывание останавливается. Мне нужно, чтобы сервер запустился после развертывания приложения. Сервер отвечает за функциональность webrtc приложения.
Есть ли сценарий heroku после развертывания, который я могу использовать?
До сих пор я пытался добавить это в свой package.json:
"scripts": {
"start": "react-scripts start",
"postdeploy": "node ./src/server/index.js",
И тогда в моем Procfile будет:
web: npm run postdeploy
Но это просто запускает сервер во время сборки.
Запуск heroku run node ./src/server/index.js
из VS code после развертывания работает, но это означает, что мне придется запускать его вручную при каждом развертывании.
Ответ №1:
измените postdeploy
ключ на heroku-postbuild
в вашем package.json
объекте script.
Эта команда будет запущена после загрузки вашей сборки в Heroku.
Комментарии:
1. Как описано в devcenter.heroku.com/articles /… ,
heroku-postbuild
выполняется «после того, как Heroku установит зависимости, но до того, как Heroku удалит и кэширует зависимости». Поэтому это выполняется в режиме разовой сборки, а не в производственных (т. Е. Живых) веб-версиях.