如何维护具有主站点共享组件的登陆页面,同时保持它们独立?

问题描述 投票:0回答:1

我正在尝试找到一种更好的方法来创建和维护使用 Laravel(5.8 + mix 6)构建的大型 CMS 站点的登陆页面。

理想情况下,登陆页面应该能够在构建时使用主站点资产和组件,但不应受到之后所做的任何更改的影响,但我们应该能够将所需的更改传播到特定组件,而无需更新所有组件。

我们当前的设置如下:

  • 在公共场合,我们有一个
    lp
    文件夹,每个登陆页面都有多个子目录
  • 每个 lp 页面都有一个存储 html 的普通 index.php
  • 我们复制主站点捆绑资产到每个登陆页面目录中并从那里加载它
  • 如果发生全球变化,我们需要传播,我们将重新编译主包并在每个登陆页面中再次复制它,并祈祷不要有太多中断。

当前文件结构:

.
└── public/
    ├── dist/ #main site bundle
    │   ├── style
    │   └── scripts
    └── lp/
        ├── lp-slug-1
        ├── lp-slug-2
        └── lp-slug-3/
            ├── dist #copied main site bundle 
            └── index.php
javascript frontend bundler webpack-5 npm-package
1个回答
0
投票

所以我最终解决这个问题的方法是将所有资产移动到 npm 包中。 我们还将项目转移到了yarn,并利用yarn工作空间来开发ui和lps,同时保持它们的依赖关系分离。

我最终创建了一个快速管道来在我们的私人注册表中发布包。

我面临的一个挑战是阻止纱线将包解析到他的本地(工作区版本)。我解决这个问题的方法是防止将包裹提升到其工作空间之外。

总体来说是一个很好的解决方案,如果将来遇到问题会更新。

© www.soinside.com 2019 - 2024. All rights reserved.