fidum/nova-package-bundler-command

Improves Laravel Nova initial load speeds by combining all third party package assets into a single file.

1.3.0 2024-03-12 14:44 UTC

This package is auto-updated.

Last update: 2024-11-08 09:34:32 UTC


README

Latest Version on Packagist GitHub Workflow Status (with branch) Twitter Follow

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

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.