yyqsg888 / laravel-minifier
为 Laravel 6, 7, 8, 9 和 10 在线压缩 blade 视图、html、css 和 js 文件
Requires
- php: >=7.2.5
- illuminate/http: >=6.0
- illuminate/support: >=6.0
- illuminate/view: >=6.0
README
Laravel 压缩包
Laravel 压缩包是一个用于压缩和混淆 Javascript、CSS、HTML 和 Blade 视图的包。它会在你加载页面或视图时自动运行。提高页面加载速度并节省带宽。混淆你的 Javascript 以保护你的代码不被盗用。
比较
此图显示了 Laravel 默认 welcome.blade.php 文件的原始文件和压缩文件的大小差异。原始文件大小为 28.7 KB,压缩文件大小为 25.7 KB。压缩文件大小比原始文件小 10%。
如果你压缩所有资产文件,你可以节省高达 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/js
或 resources/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。
报告漏洞
请阅读 我们的安全策略 获取更多信息。