如何处理不同 git 回购中的后端 (laravel) 和前端 (angular) 依赖关系

How to handle backend (laravel) and frontend (angular) dependencies in different git repos

我们正在使用 laravel 和 angularjs 构建我们的第一个网络项目,并试图找出如何设置我们的开发环境。我们当前的方法如下所示:

所以我们中的一些人可以在 backend/frontend 上工作,而无需摆弄 frontend/backend 文件。现在,如果有一个新版本,例如后端回购上的一个开发分支,我正在前端工作,我希望前端回购自动从 git 服务器中提取这个新的后端版本并将其复制到开发人员的开发环境中(在他的工作站上) .那应该保证我们可以在前端开发中使用最新的 api 路由。

问题是:

这个答案只是实现此目的的众多方法之一,定义 "best approach" 是相对的。

1。为不同的分支创建单独的虚拟主机 (dev, release, master..)

在您的 Apache 或 Nginx 中,为不同的分支创建不同的主机名,并在每个根目录(如 public_html)中拉取特定的分支。

通过这种方式,您可以让您的前端开发人员在不影响其他开发人员的情况下测试多个分支。

2。创建一个 cron 作业以定期执行 git pull

这不是优化选项,但它很简单。自动拉动存在许多复杂的解决方案(如 here and here),但正如我所说,它们很复杂。

您可以为您的 cron 作业定义一个极短的周期(例如 5 或 10 分钟),因为当您拉取并且没有更新时没有问题。

3。建立分支模型

可能你有一个,但如果没有,请与你的同事一起定义一个分支模型,就像 Vincent Driessen 的旧但黄金 Git branching model

一个关键方面是您允许您的开发人员(包括前端和后端)在不影响其他人的情况下处理他们的更改。

通常每个dev只会在经过一些测试(本地到dev,dev到release,release到master)后才将自己的本地分支与上层合并,避免不希望的错误传播。

这样每个人都可以测试自己的代码,包括前端开发人员使用后端虚拟主机之一来完成测试。