我正在尝试找到一种更好的方法来创建和维护使用 Laravel(5.8 + mix 6)构建的大型 CMS 站点的登陆页面。
理想情况下,登陆页面应该能够在构建时使用主站点资产和组件,但不应受到之后所做的任何更改的影响,但我们应该能够将所需的更改传播到特定组件,而无需更新所有组件。
我们当前的设置如下:
lp
文件夹,每个登陆页面都有多个子目录当前文件结构:
.
└── public/
├── dist/ #main site bundle
│ ├── style
│ └── scripts
└── lp/
├── lp-slug-1
├── lp-slug-2
└── lp-slug-3/
├── dist #copied main site bundle
└── index.php
所以我最终解决这个问题的方法是将所有资产移动到 npm 包中。 我们还将项目转移到了yarn,并利用yarn工作空间来开发ui和lps,同时保持它们的依赖关系分离。
我最终创建了一个快速管道来在我们的私人注册表中发布包。
我面临的一个挑战是阻止纱线将包解析到他的本地(工作区版本)。我解决这个问题的方法是防止将包裹提升到其工作空间之外。
总体来说是一个很好的解决方案,如果将来遇到问题会更新。