motomedialab / laravel-vite-helper by chrispage1

A helper method to generate absolute asset URL's to Vite assets
358,044
25
3
Package Data
Maintainer Username: chrispage1
Maintainer Contact: chris@motocom.co.uk (Chris Page)
Package Create Date: 2022-07-10
Package Last Update: 2024-03-14
Language: PHP
License: MIT
Last Refreshed: 2024-03-27 03:15:46
Package Statistics
Total Downloads: 358,044
Monthly Downloads: 18,667
Daily Downloads: 61
Total Stars: 25
Total Watchers: 3
Total Forks: 0
Total Open Issues: 0

Laravel vite() helper method

Latest Version on Packagist Total Downloads GitHub Actions

A super simple Laravel helper to fill the void that Laravel Mix left. Mix had a helper, aptly named mix() that would return an absolute URL to the mix resource. With the introduction of Vite (as of Laravel 9.19), there is no equivalent for Vite, at least, until now.

This was originally submitted as a PR to the core Laravel framework, but unfortunately wasn't deemed as a necessary addition.

Installation

You can install the package via composer:

composer require motomedialab/laravel-vite-helper

Usage

The usage for this helper is extremely simple, and directly replaces Laravel's mix() helper.

// will return the absolute compiled asset path for 'resources/css/app.css'
vite('resources/css/app.css');

// will return the absolute compiled asset path for
// 'resources/css/app.css' with custom build directory 'dist'
vite('resources/css/app.css', 'dist');

// the third argument enforces a relative path to be returned
vite('resources/css/app.css', 'build', true);

Mocking in your own tests

Using this helper may cause some tests that directly interact with your web pages to break if you don't have the compiled assets available (e.g. in a CI/CD flow).

To overcome this, there's a MocksViteHelper trait that can be used within your tests:

class ExampleTest extends TestCase
{
    use MocksViteHelper;
    
    public function a_request_to_a_view_using_vite_helper()
    {
        $this->withoutViteHelper();

        $response = $this->get('/');

        $response->assertStatus(200);
    }
    
    public function restore_vite_helper_functionality()
    {
        $this->withViteHelper();

        $response = $this->get('/');

        $response->assertStatus(500);
    }
}

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email chris@motocom.co.uk instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.