Настройка Package.json для Heroku развертывания Backend и Frontend Node / React Project - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть проект, структурированный так:

|
|-- frontend/
|   | ...(create-react-app)
|   | package.json
|
|-- backend/
|   | ...(node.js & express serving an API)
|   | package.json
|
| package.json
|

Я изо всех сил пытался понять, как разместить его на одном домене в Heroku, чтобы были доступны как интерфейс, так и интерфейс API.Существует несколько учебных пособий, которые предполагают, что одним из решений является одновременная работа обоих серверов (React и Express) и настройка прокси-инструкции для вызовов API.

Ни один из них не подходит для моей конкретной установки, и ямне пришлось взломать мой корневой уровень package.json, чтобы он собирал, запускал и устанавливал в разных папках в моем проекте.

Я не чувствую, что мое текущее решение является оптимальным, и буду благодарен за комментарии к сценарию.раздел моего корневого пакета .json.Можно ли это улучшить?Похоже, он работает с моим размещенным проектом, но я чувствую, что его может улучшить кто-то, кто понимает процесс сборки Heroku.

Уровень корневого пакета package.json:

{
  "name": "paddlr",
  "description": "ping pong brilliance",
  "main": "backend/index.js",
  "engines": {
    "node": "8.12.0"
  },
  "scripts": {
    "client": "cd frontend && npm start",
    "dev": "concurrently --kill-others-on-fail \"npm server\" \"npm client\"",
    "dev:server": "cd frontend && npm build && cd .. && npm start",
    "start": "node backend/index.js",
    "heroku-postbuild": "cd backend && npm install && cd ../frontend && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
  },
  "dependencies": {
    "concurrently": "^4.0.1",
    "node-fetch": "^2.2.0"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...