如何为Netlify子域支持构建存储库?

时间:2018-12-16 18:40:51

标签: netlify

Netlify子域基于存储库上的分支工作。如果我有一个域,例如xyz.com和仓库Repo-A,则master分支将部署到xyz.com,而dashboard分支将部署到dashboard.xyz.com。但是,仪表板和主分支对一些视觉元素的期望却大不相同。

我正在尝试寻找一种构造存储库的干净方法

Repo - A
(master branch)
   src/app
   package.json
   webpack.config.js


Repo - A
(dashboard branch)
   src/app
   package.json
   webpack.config.js

这种方法的问题是我必须大量更改我的webpack,package和src文件。 我相信在分支之间来回切换也会在dist/文件夹中产生大量垃圾。

最有效的回购结构是什么?是否有工具可以简化此用例的工作?

另一种方法-

Create a Release Repo that has release branches like master and dashboard.

master commits to Repo A which pushes build to master branch of Release repo
master commits to Repo B which pushes build to dashboard branch of Release repo

与第一种方法相比,这是一种更清洁的方法吗?有什么建议吗?

1 个答案:

答案 0 :(得分:2)

此功能似乎更适用于暂存/开发/生产(主版),当您使用它们来跟踪更改以进行审核并通过工作流向每个子域分支进行拉取请求时。我不使用此功能,因为通过创建branch deploys仍然很容易跟踪工作流程。我认为这真正有用的地方是在子域中针对不同版本跟踪我的网站版本时。

在将子域用于完全不同的项目时,应考虑将它们移至其自己的存储库,并在子域中将其作为自己的站点进行管理。然后在DNS中输入CNAME子域条目以指向my-dashboard-site-name.netlify.com enter image description here

Mono-repo

如果您不想将它们制作为自己的存储库,则可以将它们放在同一个单一存储库中,但仍可以将站点部署分开。这比他们自己的存储库要复杂一点,但是如果您要以这种方式进行维护,可以使用Lerna之类的工具。它确实提供了一种很好的方式来维护项目,这些项目可以重新使用未发布到程序包管理器的相同库,但可以在同一mono-repo中使用。