motomedialab/laravel-vite-helper

一个辅助方法,用于生成到 Vite 资产的绝对 URL

v1.7.0 2024-03-14 20:01 UTC

README

Latest Version on Packagist Total Downloads GitHub Actions

Laravel 的一个超级简单的辅助方法,用于填补 Laravel Mix 留下的空白。Mix 有一个名为 mix() 的辅助方法,可以返回 mix 资源的绝对 URL。随着 Vite(自 Laravel 9.19 版本起)的引入,没有与之等效的功能,至少直到现在还没有。

这最初是一个提交到 Laravel 核心框架的 PR,但不幸的是,没有被认定为必要添加。

安装

您可以通过 composer 安装此包

composer require motomedialab/laravel-vite-helper

使用方法

此辅助方法的使用非常简单,直接替换了 Laravel 的 mix() 辅助方法。

// 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);

// the final argument allows you to force disable hot server mode and always return the manifest path
vite('resources/css/app.css', 'build', true, true);

// you can also use named arguments as below
vite('resources/css/app.css', buildDirectory: 'dist', relative: true, hotServer: true);

// and even supply an array to get an array of paths/URLs
vite(['resources/css/app.css', 'resources/js/app.js']);

在测试中进行模拟

如果您没有可用的编译后的资产(例如,在 CI/CD 流中),则使用此辅助方法可能会导致一些直接与您的网页交互的测试失败。

为了克服这个问题,有一个 MocksViteHelper 特性可以在您的测试中使用

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);
    }
}

测试

composer test

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 chris@motocom.co.uk 联系,而不是使用问题跟踪器。

鸣谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。

Laravel 包模板

此包是使用 Laravel 包模板 生成的。