首页 > 解决方案 > 为后端和前端节点/React 项目的 Heroku 部署设置 Package.json

问题描述

我有一个结构如下的项目:

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

我一直在努力弄清楚如何在 Heroku 上的单个域上托管它,以便前端和后端 API 都可以访问。有一些可用的教程建议一种解决方案是让两个服务器(React 和 Express)同时运行并为 API 调用设置代理指令。

这些都不适用于我的特定设置,我不得不破解我的根级别 package.json 以便它在我的项目中的各种文件夹中构建、启动和安装。

我不觉得我当前的解决方案是最佳的,并且希望对我的根 package.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"
  }
}

标签: node.jsexpressherokucreate-react-apppackage.json

解决方案


推荐阅读