Heroku:如何在客户端和服务器运行在不同端口上的情况下部署节点应用程序?

Mic*_*ael 5 deployment client heroku node.js server

我有一个nodejs API作为服务器,而React / Redux应用程序作为客户端位于一个git项目中:https : //github.com/lafisrap/fcc_nightlife.git

我想使用heroku cli在Heroku上部署它。

package.json中的脚本部分为:

  "scripts": {
    "start-dev": "concurrently \"yarn run server\" \"yarn run client\"",
    "start": "yarn run server | yarn run client",
    "server": "babel-node server.js",
    "client": "node start-client.js",
    "lint": "eslint ."
  },
Run Code Online (Sandbox Code Playgroud)

start-client.js:

const args = [ 'start' ];
const opts = { stdio: 'inherit', cwd: 'client', shell: true };
require('child_process').spawn('yarn', args, opts);
Run Code Online (Sandbox Code Playgroud)

在客户端文件夹中,我还有另一个package.json,它定义了客户端。它的脚本部分:

  "scripts": {
    "start": "react-scripts start",
  }
Run Code Online (Sandbox Code Playgroud)

我做了:

heroku创建
git push heroku master

api运行正常。但是我不知道如何启动/访问客户端。

tbk*_*ing 8

不能在一个 Heroku 应用程序中部署两个服务。简而言之,您必须将它们部署到单独的 Heroku dynos 才能部署两个应用程序。

此 stackoverflow对类似问题的回答中提供了更多信息。

PS:构建 React 文件后,始终可以选择从 API 服务器提供 JS 文件。

希望这可以帮助!


Mar*_*son 6

这个 repo 显示了 Node.js 的设置,它为在单个 Heroku dyno 上运行的 React 前端提供服务:https : //github.com/mars/heroku-cra-node我能够使用它作为指南来启动并运行.