helvetiapps / jetstrap
一个 Laravel 8 包,可以轻松地将 Laravel Jetstream 生成的 TailwindCSS 资源切换到 Bootstrap 4 或 5。
Requires
- php: ^7.3|^8.0|^8.1
Requires (Dev)
- inertiajs/inertia-laravel: ^0.3
- laravel/breeze: ^1.1
- laravel/jetstream: ^2.3
- orchestra/testbench: ^6.0|^7.0
- phpunit/phpunit: ^9.3
This package is auto-updated.
Last update: 2024-09-16 18:23:01 UTC
README
描述
Jetstrap 是一个轻量级的 Laravel 8 包,专注于 Laravel 应用程序中安装的 Jetstream / Breeze 包的 VIEW
部分,因此当进行交换时,您的项目中的 Action
、MODEL
、CONTROLLER
、Component
和 Action
类仍然由 Laravel 开发团队 100% 处理,没有任何额外的复杂性层。
目录
安装
安装 Jetstream
您可以使用 Composer 将 Jetstream 安装到新的 Laravel 项目中
composer require laravel/jetstream
如果您选择通过 Composer 安装 Jetstream,则应运行 jetstream:install Artisan 命令。此命令接受您偏好的堆栈名称(Livewire 或 Inertia)。强烈建议在开始 Jetstream 项目之前阅读 Livewire 或 Inertia 的整个文档。此外,您还可以使用 --teams 开关启用团队支持
使用 Livewire 安装 Jetstream
php artisan jetstream:install livewire --teams
或者,使用 Inertia 安装 Jetstream
php artisan jetstream:install inertia --teams
安装 Jetstrap
使用 Composer 将 Jetstrap 作为开发依赖项安装到您的 Laravel 项目中
composer require nascent-africa/jetstrap --dev
无论您如何安装 Jetstream,Jetstrap 命令都与 Jetstream 非常相似,因为它接受您想要交换的堆栈名称(Livewire 或 Inertia)。
在执行交换之前,您强烈建议安装并配置 Laravel Jetstream。
在开始 Jetstrap 项目之前,您强烈建议阅读 Jetstream 的整个文档。此外,您还可以使用 --teams
开关交换团队资产,就像在 Jetstream 中做的那样。
php artisan jetstrap:swap livewire or php artisan jetstrap:swap livewire --teams php artisan jetstrap:swap inertia --teams
这将发布覆盖,以便像过去一样启用 Bootstrap!
完成安装
在安装 Jetstrap 并交换 Jetstream 资源后,从 package.json 中删除 tailwindCSS 及其依赖项(如果有),然后安装和构建您的 NPM 依赖项,并迁移数据库
npm install && npm run dev
php artisan migrate
附加功能
分页
还需要注意的是,Laravel 8 仍然包含使用 Bootstrap CSS 构建的分页视图。要使用这些视图而不是默认的 Tailwind 视图,您可以在 AppServiceProvider 中调用 paginator 的 useBootstrap 方法
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Pagination\Paginator; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { // } /** * Bootstrap any application services. * * @return void */ public function boot() { Paginator::useBootstrap(); } }
预设
预设是使用 bootstrap 构建的自定义第三方模板。我们考虑过,您使用 Laravel 或 Laravel Jetstream 提供的默认模板的可能性有多大。
假设在运行任何类型的脚手架之前,您已经决定了要走的路,因此如果您想使用 CoreUi 或 AdminLte 预设,则应在第一次运行任何 swap
命令时在服务提供程序中指定选择(JetstrapFacade::useCoreUi3()
或 JetstrapFacade::useAdminLte3()
)。
如果您在运行交换命令后改变主意并决定使用预设,那么请再次运行 jetstrap:swap
命令。
核心 UI
Core Ui(https://coreui.io/)可以让您节省数千个小时的无价时间,因为它提供了创建现代、美观和响应式应用所需的一切,正如其网站上所述。
请访问CoreUI的文档,了解更多如何使用它的详细信息。
要使用Core Ui预设,只需在您的AppServiceProvider中调用useCoreUi3
方法。
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use NascentAfrica\Jetstrap\JetstrapFacade; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { // } /** * Bootstrap any application services. * * @return void */ public function boot() { JetstrapFacade::useCoreUi3(); } }
AdminLTE
AdminLTE(https://adminlte.cn/)是一个开源的仪表板和控件面板主题。基于Bootstrap构建,AdminLTE提供了一系列响应式、可重用和常用组件。
请访问AdminLTE的文档,了解更多如何使用它的详细信息。
要使用AdminLte预设,只需在您的AppServiceProvider中调用useAdminLte3
方法。
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use NascentAfrica\Jetstrap\JetstrapFacade; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { // } /** * Bootstrap any application services. * * @return void */ public function boot() { JetstrapFacade::useAdminLte3(); } }
Breeze
警告!!!:Jetstrap资源已更新以与当前版本的Breeze兼容,但不支持与inertia-react资源的交换。如果您能提供此功能,请随时提交PR。
根据文档,“Breeze为使用身份验证构建Laravel应用提供了一个最小和简单的起点。”但就我个人而言,我更愿意将其视为没有Vue和Bootstrap的Laravel Ui。最近我参与了一个不使用Vue也不需要复杂身份验证系统的项目,因此Breeze看起来是个不错的选择,但再次遇到了TailwindCSS问题,所以我想到为什么不将其包含在Jetstrap包中。
在继续之前,请通过官方文档文档熟悉Breeze。
Jetstrap不会影响Breeze的模型/控制器部分,仅影响视图。
交换 Breeze 资源
要在Breeze配置的Laravel中交换Tailwind资源为Bootstrap,请简单运行:
php artisan jetstrap:swap breeze
交换 Breeze inertia 资源
Laravel Breeze现在包含了用于inertia脚手架的占位符,Jetstrap也是如此。要在Breeze alongside inertia运行的laravel项目中使用Bootstrap脚手架,请运行以下代码:
php artisan jetstrap:swap breeze-inertia
接下来,您需要清理您的package.json
文件,以确保我们不安装不必要的包。
然后运行:
npm install && npm run dev
...完成!
在交换breeze资源时,在服务提供者中使用JetstrapFacade::useCoreUi3()
或JetstrapFacade::useAdminLte3();
将按预期工作。
测试
使用以下命令运行测试:
vendor/bin/phpunit
或
composer tests
许可
Jetstrap是开源软件,根据MIT许可证授权。