如何为 Laravel Backpack 构建和打包主题?

How to build and package themes for Laravel Backpack?

提问人:Pekka 提问时间:1/17/2023 最后编辑:Pekka 更新时间:1/20/2023 访问量:346

问:

我正在同时开发两个 Laravel+Backpack 应用程序。

我正在对 Backpack 的外观和感觉进行大量样式设计和更改,不仅在 CSS 级别,而且在单个 Blade 模板中。

大多数更改适用于我正在处理的两个应用程序。

目前,我将通过复制+粘贴文件和一些自定义 CSS 中的更改,将手动对一个应用程序所做的更改应用到另一个应用程序。/resources/views/vendor/backpack/crud

然而,它很快就会过时,我开始认为我应该构建一个可以在项目之间共享的包。也许我所做的改变最终会变成一个可能引起其他人兴趣的主题,我也需要一个交付机制。

有没有人有一些关于如何最好地做到这一点的指示。我是 Laravel 生态系统的新手,看到了很多关于如何创建 Laravel 包的建议,但我不确定这是否适用于我的情况。

我正在寻找的是创建一个包,它只做镜像原始视图和 CSS 资源,但当然也可以在项目本身中自定义。vendor/backpack/crud/src/resources

因此,当 Backpack 构建 UI 时,它会查找视图

  • 先进先入vendor/backpack/crud/src/resources/views
  • 然后在<--我的包/主题vendor/my-theme-for-crud/src/resources/views
  • 然后在my-project/resources/views/vendor/crud

Backpack 目前是否允许这样做?

LARAVEL LARAVEL 背包

评论

1赞 Tim Lewis 1/17/2023
我为包开发参考了 laravel.com/docs/9.x/packageslaravelpackage.com/#reasons-to-develop-a-package,但我还没有开发任何需要另一个包(背包)作为依赖项的包......Backpack 是开源的,github.com/laravel-backpack/crud,所以你可以分叉 repo,根据你的需要进行修改,然后安装它而不是基本 backpack,但随之而来的是让它保持最新状态的麻烦(技术上可选的,但对安全问题等有好处)。除了这些沉思之外,不确定;没有直接使用背包。main
1赞 Pekka 1/17/2023
@TimLewis是的,分叉是最后的手段,但如果可能的话,我希望能够避免!我正在构建的内容可能也会满足其他用户的喜好,因此某种主题机制可能对所有相关人员都非常有用(但可能根本不存在于 Backpack 中)
0赞 RG Servers 1/18/2023
我建议一个更好的选择,那就是 laravel nova。这具有更好的可定制性,也更容易模板化。此外,它是由 laravel 团队制作的

答:

3赞 Pekka 1/20/2023 #1

原来背包里有一些主题支持!

https://backpackforlaravel.com/docs/5.x/base-how-to#create-a-new-theme-child-theme

您可以使用自己的 HTML 创建主题。创建一个包含要覆盖的所有视图的文件夹,然后更改 config/backpack/base 中的view_namespace.php以指向该文件夹。所有视图都将从该文件夹加载(如果存在),然后从 resources/views/vendor/backpack/base 加载,然后从 Base 包加载。

您可以使用子主题来:

为您的 Backpack 管理面板创建包,使其看起来与众不同(并在各个项目中重复使用) 使用不同的 CSS 框架(例如:Tailwind、Bulma)

即将推出的背包 v6 将发生变化:

我们正在完全重写 Backpack v6 中的主题/资产系统(将于下个月发布)。