yyqsg888/laravel-minifier

为 Laravel 6, 7, 8, 9 和 10 在线压缩 blade 视图、html、css 和 js 文件

v1.5.0 2024-04-16 08:09 UTC

README

Logo

Laravel 压缩包

Laravel 压缩包是一个用于压缩和混淆 Javascript、CSS、HTML 和 Blade 视图的包。它会在你加载页面或视图时自动运行。提高页面加载速度并节省带宽。混淆你的 Javascript 以保护你的代码不被盗用。

Latest Stable Version Total Downloads License StyleCI

比较

此图显示了 Laravel 默认 welcome.blade.php 文件的原始文件和压缩文件的大小差异。原始文件大小为 28.7 KB,压缩文件大小为 25.7 KB。压缩文件大小比原始文件小 10%。

Logo

如果你压缩所有资产文件,你可以节省高达 50% 的带宽。这将使你的网站加载更快并节省你的托管费用。当你有大型文件时,大小的差异将会更大。

安装

Laravel 压缩包需要 PHP 7.2 或更高版本。这个特定的版本支持 Laravel 8.x、9.x 和 10.x。

要获取最新版本,只需使用 Composer 引入项目

composer require yyqsg888/laravel-minifier

配置

Laravel 压缩包支持可选配置。要开始,你需要发布所有供应商资产

php artisan vendor:publish --provider="LaravelMinifier\Minify\MinifyServiceProvider"

这将在你的应用中创建一个 config/minify.php 文件,你可以修改它来设置你的配置。同时,确保你检查本包发布之间的原始配置文件更改。

注册中间件

为了使 Laravel 压缩包能够拦截你的请求进行压缩和混淆,你需要在 app/Http/Kernel.php 文件中添加 Minify 中间件

protected $middleware = [
    ....
    // Middleware to minify CSS
    \LaravelMinifier\Minify\Middleware\MinifyCss::class,
    // Middleware to minify Javascript
    \LaravelMinifier\Minify\Middleware\MinifyJavascript::class,
    // Middleware to minify Blade
    \LaravelMinifier\Minify\Middleware\MinifyHtml::class,
];

你可以选择你想使用的中间件。如果你想同时压缩 html、css 和 javascript,可以将所有它们放入。

用法

这就是如何在你的项目中使用 Laravel 压缩包的方法。

启用压缩

你可以在 config/minify.php 文件中将 minify 设置为 true 来启用压缩。例如

"enabled" => env("MINIFY_ENABLED", true),

压缩资产文件

你必须在 config/minify.php 文件中将 assets_enabled 设置为 true 来压缩你的资产文件。例如

"assets_enabled" => env("MINIFY_ASSETS_ENABLED", true),

你可以使用 minify() 辅助函数来压缩你的资产文件。此函数将压缩你的资产文件并返回压缩后的路由。为了正常工作,你需要将你的资产文件放在 resources/jsresources/css 目录中。例如

<link rel="stylesheet" href="{{ minify('/css/test.css') }}">

其中 test.css 位于 resources/css 目录中。

<script src="{{ minify('/js/test.js') }}"></script>

其中 test.js 位于 resources/js 目录中。

在 Javascript 或 CSS 中自动插入分号

如果 Laravel 压缩包使你的 Javascript 或 CSS 不能正常工作,请使用此选项。你可以在 config/minify.php 文件中将 insert_semicolon 设置为 true 来在 Javascript 或 CSS 中自动插入分号。例如

"insert_semicolon" => [
    'css' => env("MINIFY_CSS_SEMICOLON", true),
    'js' => env("MINIFY_JS_SEMICOLON", true),
],

注意:此选项为实验性。如果代码仍然不能正常工作,你可以禁用此选项并手动将分号添加到你的 Javascript 或 CSS 代码中。

在 Blade 中跳过压缩

你可以在 script 或 style 标签中使用属性 ignore--minify 来跳过 Blade 中的压缩。例如

<style ignore--minify>
    /* css */
</style>

<script ignore--minify>
   /* javascript */
</script>

在渲染视图时跳过压缩

你可以在视图数据中传递 ignore_minify = true 来在渲染视图时跳过压缩。例如

return view('welcome', ['ignore_minify' => true]);

通过路由跳过压缩

你可以在 config/minify.php 文件中的 ignore 数组中添加路由名称来通过路由跳过压缩。例如

"ignore" => [
    '/admin'
],

许可证

Laravel Minify 遵循 MIT 许可协议

支持

此项目是为了私有开发目的而分叉的。我们不提供支持。如需支持,请使用原始项目 https://github.com/fahlisaputra/laravel-minify

报告漏洞

请阅读 我们的安全策略 获取更多信息。