heroku 将全栈应用程序部署到数字海洋,而不是从Express服务器提供前端服务

vuktfyat  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(93)

我正在使用App Platfrom将我的应用程序部署到digitalOcean,我的应用程序结构如下:

client
       ├── /public
       ├── /src
       ├── package-lock.json
       └── package.json

 index.js // this the index of the express server 
 routes
       └── api.js
 package-lock.json
 package.json

字符串
客户端文件夹是react应用程序,根文件夹是express服务器。我已经遵循了this tutorial关于如何部署express服务器,其中包括react应用程序,通过使用express服务器提供react文件:

app.use(express.static(path.join(__dirname, 'client/build')));


当我将应用程序部署到heroku时,一切都很好,因为react前端是由服务器从客户端文件夹提供的,后端API工作正常,但我想将其部署到digitalocean,所以重要的部分是在根目录中的packages.json中定义脚本,看起来像:

"scripts": {
  "start": "node index.js",
  "digitalocean-build": "cd client && npm install && npm run build"
}


但与DigitalOcean一样,在部署前配置应用程序时,提供了两个选项

Build Command // i used here npm run digitalocean-build

Run Command  //i used  npm run  start


部署完成后,当我检查URL时,只有服务器索引正在运行,但服务器和React前端都没有运行。我已经在这方面挣扎了近两天,我敢肯定有一些我还没有涵盖它。我真的很感激任何帮助。

ubof19bj

ubof19bj1#

尝试将此命令作为构建命令。

npm i && npm --prefix frontend install && npm --prefix frontend run build

字符串

相关问题