Развернуть приложение в Heroku, которое отсутствует в корне проекта? - PullRequest
0 голосов
/ 05 июля 2018

Мне нужно развернуть приложение узла, которое не находится в корне моего проекта.

Мой проект похож на это: https://github.com/graphql-boilerplates/react-fullstack-graphql/tree/master/advanced

В корне проекта находится приложение React, но я не хочу его развертывать. В папке «сервер» находится мой сервер узлов, и это то, что мне нужно для развертывания в Heroku.

При развертывании Heroku запускается npm run start в пакете верхнего уровня package.json. Как я могу заставить Heroku игнорировать это и просто запустить package.json в папке /server?

Обновление: я создал Procfile в корне моего проекта со следующим:

web: ./server npm run start

Но при развертывании у меня появляется ошибка приложения:

2018-07-05T12:41:51.627168+00:00 app[api]: Release v4 created by user MYEMAIL@gmail.com
2018-07-05T12:41:59.000000+00:00 app[api]: Build succeeded
2018-07-05T12:42:02.176695+00:00 heroku[web.1]: Starting process with command `./server npm run start`
2018-07-05T12:42:04.817337+00:00 heroku[web.1]: State changed from starting to crashed
2018-07-05T12:42:04.701159+00:00 app[web.1]: bash: ./server: Is a directory
2018-07-05T12:42:04.782252+00:00 heroku[web.1]: Process exited with status 126
2018-07-05T12:42:11.974345+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=DEPLOY-NAME.herokuapp.com request_id=c2cba42e-80af-4b16-95sdfdfd-2918 fwd="86.343.251.15" dyno= connect= service= status=503 bytes= protocol=https

Ответы [ 3 ]

0 голосов
/ 11 июля 2018

Я отправил сообщение в службу поддержки Heroku, и они в значительной степени сказали, что не поддерживают развертывание приложения узла, которое не находится в корне проекта.

Я собираюсь разделить мой проект, но вы, вероятно, могли бы сделать это с помощью git поддерева.

0 голосов
/ 12 июля 2018

Проверьте сценарий предварительной сборки heroku. У меня есть приложение API и приложение реагирования, которые обслуживаются экспрессом, но в разных папках. Поместите package.json в корень и используйте heroku-prebuild для перемещения в другие папки.

{
  "scripts": {
    "heroku-prebuild": "cd app && npm install && npm run build && cd .. && cd api && npm install",
    "start": "cd api && npm start"
  }
}
0 голосов
/ 05 июля 2018

Вы можете изменить это поведение, определив Procfile, который переопределяет start: https://devcenter.heroku.com/articles/nodejs-support#default-web-process-type

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...