node.js - 为后端和前端节点/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"
}
}
解决方案
推荐阅读
- c# - 我可以指定 Web-Api 方法需要 Swashbuckle/Swagger 生成的页面/json 中的文件吗
- python - Seaborn 或 Matplotlib 的语义差分图
- javascript - 如何从 SQL 中的日期时间中删除时间
- scala - Spark RowMatrix columnSimilarities 保留原始索引
- r - 通过管道使用 ggsave
- python - 使用 python 的 BigQuery 外部表
- kubernetes - 如何在k8s yaml文件中引用标签值
- google-cloud-platform - 使用 GKE 的 GCP 路由(启用 IP 别名)
- codeigniter - 如何重定向或显示自定义错误消息?
- html - 在最后一行包装弹性项目