【问题标题】:deploying client and server code to Heroku将客户端和服务器代码部署到 Heroku
【发布时间】:2022-10-26 03:12:50
【问题描述】:

我有一个代码库,如下所示:

rootfolder
    -- backend
    -- frontend
    -- .git

.git文件夹,因此整个版本控制位于根文件夹, 每个子文件夹(后端前端) 有个包.json和一个包锁文件

后端项目是一个 NestJs 应用程序

前端项目是一个 Angular 应用程序

为了提供我指定的客户文件/我的后端应用程序提供静态文件的路径,这些文件是我的前端的编译版本

在 localhost 中,它就像一个魅力,当部署到 Heroku 时,事情就来了

我有 CI/CD 管道可以自动执行此任务,但它们失败了,因为 Heroku 无法检测到 package.json 文件根文件夹

我只需要运行我的服务器(内部后端文件夹)来启动我的整个应用程序 有没有办法将 Heroku 指向 package.json 文件的位置?或者让它进入正确的目录?

问题的产生是因为使用 CI/CD 管道我正在推动整个根文件夹如果我应该只推送带有静态客户端文件的服务器应用程序,我想如果可能的话,我不想摆脱 CI/CD 管道

【问题讨论】:

    标签: angular heroku nestjs


    【解决方案1】:

    对于在那里徘徊的每个人来说,heroku 提供了一个脚本,您可以在其中运行逻辑,然后再构建过程

    就我而言,我创建了一个包.json文件在根文件夹水平与以下脚本

     "scripts": {
    "heroku-prebuild": "(cd ./backend && npm install && npm run build && cd ../frontend && npm install && npm run build:frontend)",
     "start": "(cd ./backend && npm run start)",
    }
    

    使用heroku-prebuild 命令我可以 cd 进入 mi后端保护文件夹然后构建它,然后 cd 进入我的前端保护文件夹,然后运行我的自定义build:frontend 命令编译我的前端应用程序,然后将它放在我的后端项目中的指定文件夹中,作为我的后端的静态文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 2020-08-22
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多