fidum / nova-package-bundler-command
Improves Laravel Nova initial load speeds by combining all third party package assets into a single file.
Fund package maintenance!
dmason30
Installs: 32 670
Dependents: 0
Suggesters: 0
Security: 0
Stars: 19
Watchers: 0
Forks: 3
Open Issues: 1
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.8
- illuminate/contracts: ^9.0|^10.0|^11.0
- laravel/nova: ^4.22
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.0|^8.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.19
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.3
README
Installation
You can install the package via composer:
composer require fidum/nova-package-bundler-command
You can publish the config file with:
php artisan vendor:publish --tag="nova-package-bundler-command-config"
Click here to see the contents of the config file.
You should read through the config, which serves as additional documentation and make changes as needed.
Update Nova configuration file in config/nova.php
. Add the OverrideNovaPackagesMiddleware
to the middleware
option after BootTools
:
use Fidum\NovaPackageBundler\Http\Middleware\OverrideNovaPackagesMiddleware; use Laravel\Nova\Http\Middleware\BootTools; use Laravel\Nova\Http\Middleware\DispatchServingNovaEvent; use Laravel\Nova\Http\Middleware\HandleInertiaRequests; return [ // ... 'middleware' => [ 'web', HandleInertiaRequests::class, DispatchServingNovaEvent::class, BootTools::class, OverrideNovaPackagesMiddleware::class ], // ... ];
Usage
Run the below command whenever you upgrade your third party nova packages. This should output the files configured above, you should commit the files to your repo.
$ php artisan nova:tools:publish Booting tool [App\Nova\Tools\HelpLink] .................................................................................................. 0ms DONE Booting tool [App\Nova\Tools\QuickQuote] ................................................................................................ 0ms DONE Reading asset [1feb8c78f6bd6ba8a6a29cab353ebd8d] from [public/vendor/nova-kit/nova-packages-tool/tool.js] ............................... 0ms DONE Reading asset [nova-apex-chart] from [vendor/coroowicaksono/chart-js-integration/src/../dist/js/chart-js-integration.js] ................ 3ms DONE Reading asset [multiselect-field] from [vendor/outl1ne/nova-multiselect-field/src/../dist/js/entry.js] .................................. 2ms DONE Reading asset [nova-multiselect-filter] from [vendor/outl1ne/nova-multiselect-filter/src/../dist/js/entry.js] ........................... 2ms DONE Reading asset [nova-opening-hours-field] from [vendor/sadekd/nova-opening-hours-field/src/../dist/js/field.js] .......................... 1ms DONE Reading asset [nova-tag-input] from [vendor/superlatif/nova-tag-input/src/../dist/js/field.js] .......................................... 2ms DONE Writing file [public/vendor/nova-tools/app.js] .......................................................................................... 1ms DONE Reading asset [multiselect-field] from [vendor/outl1ne/nova-multiselect-field/src/../dist/css/entry.css] ................................ 0ms DONE Reading asset [nova-multiselect-filter] from [vendor/outl1ne/nova-multiselect-filter/src/../dist/css/entry.css] ......................... 0ms DONE Reading asset [nova-opening-hours-field] from [vendor/sadekd/nova-opening-hours-field/src/../dist/css/field.css] ........................ 0ms DONE Reading asset [nova-tag-input] from [vendor/superlatif/nova-tag-input/src/../dist/css/field.css] ........................................ 0ms DONE Writing file [public/vendor/nova-tools/app.css] ......................................................................................... 0ms DONE Writing file [public/vendor/nova-tools/manifest.json] ................................................................................... 0ms DONE
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.