Improves Laravel Nova initial load speeds by combining all third party package assets into a single file.
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
],
// ...
];
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
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.