多设备上的 Web 开发结构

Web development structure on multiple devices

我有一个关于网络开发的问题。 (我主要制作 Drupal 网站)我一直在努力解决这个问题,但我就是找不到最好的工作流程。我会解释我的问题:

我有一台笔记本电脑(我主要用于学校)和一台个人电脑。我想将两者都用于开发。

我认为最好的做法是使用 GitHub 之类的东西。但我不希望一切都是public。所以我租了一个 vps 并设置了 GOGS(一个自托管 GitHub 替代方案)一切正常,我可以用它来将我的工作推拉到其他设备。

我目前的问题;例如,如果我开发一个 Drupal 网站,我会在我的笔记本电脑上进行安装。我也需要在我的电脑上进行相同的安装。 (因为我使用的是 .gitignore。不会推拉整个安装。)

我应该这样工作吗? 我想到了一些替代方案,但我不知道它们是否更好;

想请教一下这里最好的方法是什么?谢谢!

我认为 self-hosted Git 的开销很小。只需在 https://bitbucket.org or https://gitlab.com 上创建一个帐户即可。他们有免费的私人仓库。

但是,是的,原则上,您的工作方式是正确的。

  • 去中心化代码库
  • 本地发展
  • 代码发布到实时实例(服务器)

在 Git 开发方面,Drupal 现在已经包含了某些东西 "preconsidered"。它已经有一个正确预配置的 .gitignore 文件,例如最初排除了 settings.php 文件,该文件包含敏感信息(最重要的:数据库凭据)。该文件在站点的所有本地实例和实时实例上都将不同。您可能还想忽略其他文件(.htaccessrobots.txt 等)。这主要取决于您的工作流程。

下一步"problem":数据库。您可能已经发现,某些内容仅存在于数据库中。不在代码中。节点、页面、设置。这个问题一般通过"down-streaming"database-dumps从live in direction to local(绝不反方向)解决。因此,您通常会从实时实例(在您的实时服务器上)创建一个数据库转储,然后将该数据库导入您的开发服务器和本地实例。因此,您现在可以定义一个基本实例并始终从那里获取数据库。 (类似适用于 /files 文件夹中的所有资产——只需将该文件夹从实时下载到您的本地实例即可。)

在 Drupal 7 中,这个 "problem"(或挑战)的大部分通常是用 Features module, which allowed you to export database settings from your local Drupal database into certain features modules and these settings then could be commited, pushed, pulled and re-imported into the database on the live instance. In Drupal 8 this challenge mainly got solved by Configuration Management 解决的,其中很多设置被导出到 *.yml 文件中,然后可以在所有其他实例上分发和导入。

为了使 Drupal 开发更容易一些(在导出和导入数据库或配置时),有许多可用的工具。

但您也可以使用您喜欢的其他工具(NPM、Bower、Gulp 等)。然后让他们去干驴子的活。

我提供的大部分信息会在您开始与其他人一起处理一个项目的那一刻自动变得更加清晰。

请随时在评论中提出一两个确切的附加问题。