服务器/客户端的好的Git体系结构?

我即将开始一个非常大的项目。

这个项目是一个网站。

  • 后端将与节点
  • 前端将主要与Angular

后端将成为一个API(这是一个很酷的angular度),但也(以后)的Android应用程序。

前端将是这个回购叉: https : //github.com/maxime1992/webTemplate ,我想能够从上游拉动叉保持最新。

我想知道。 我应该如何pipe理它?

  1. 我应该只创build一个回购,包含与Git子模块或子树的后端和前端。
  2. 我应该创build两个分离的回购,一个用于前端,一个用于后端,然后使用符号链接将它们放在一起? 但是,如果有人想在Windows上运行它…太糟糕了。

我希望这个项目在GitHub上是开源的,所以我希望为大家提供一些清晰和简单的东西:)

告诉我你会怎么做,什么是好的,什么是错的,我真的很好奇!

正如在评论中指出的那样,Git子模块(或Git子树)并不是正确的解决scheme。 为此,使用依赖pipe理工具,它将跨平台(Linux,Mac,Windows)工作,并且是这样做的标准方式。

将后端和前端分隔成单独的项目是一个好主意,因为它可以让您独立pipe理项目并在稍后添加function或其他客户端应用程序,而不会增加您的应用程序。

既然你已经在使用Angular作为前端,我build议你看看Bower ,它是前端项目事实上的标准依赖pipe理工具。 它允许你定义一个bower.json文件来定义你的依赖关系,例如Angular和其他前端库,允许你组装你的前端项目而不必手动下载和存储库。

在你的后端项目中,你还可以添加一个bower.json文件,通过指向它的Git位置和分支来声明你的前端项目是一个依赖项 。 然后,鲍尔将负责下载您的前端项目,并将其添加到您的后端项目。

查看一些stream行的Bower教程,了解更多相关信息…

您可以使用bower link在项目之间自动创build符号链接 – 这也可以跨操作系统使用。

其他一些您可能想要查看的工具:

  • Yeoman为脚手架基地项目。 有一些很好的脚手架Angular项目生成器,包括LESS / SASS和Bootstrap( https://github.com/yeoman/generator-angular
  • Wiredep自动将您的Bower依赖项连接到您的index.html文件中。

让您的初始项目设置正确将是重要的。 您可以从小处着手,以后再将其发展到更高级的configuration。