У меня есть проект, структурированный так:
|
|-- 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"
}
}