如何为 Netlify 子域支持构建 repo?

How to structure repo for Netlify subdomain support?

Netlify 子域基于存储库上的分支工作。如果我有一个域说 xyz.com 和 repo Repo-A,master 分支将部署到 xyz.comdashboard 分支将部署到 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、包和 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

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

此功能似乎更适合 staging/development/production(master) 当您使用它们来跟踪更改以供审查并通过工作流向每个子域分支发出拉取请求时。我不使用此功能,因为创建 branch deploys 很容易跟踪工作流。我认为这会真正派上用场的地方是在不同版本的子域中跟踪我网站的版本。

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

单一回购

如果您不想让它们成为自己的存储库,您可以将它们放在同一个单一存储库中,您仍然可以将站点部署分开。这比他们自己的存储库复杂一点,但如果您想以这种方式维护它,可以使用 Lerna 等工具。它确实提供了一种很好的方式来维护重用相同库的项目,这些库没有发布到包管理器,但在同一个单存储库中。