Html Minifier adalah paket simpel untuk minify output Html, Css style, dan Javascript sebelum dirender ke browser untuk aplikasi Laravel anda.

Overview

Build Status Latest Stable Version Total Downloads License

Laravel Html Minifier

Adalah Paket simpel untuk minify HTML, Css Style, dan Javascript sebelum dirender ke browser untuk aplikasi Laravel anda.

Alat ini hanya bekerja jika output yang diberikan adalah bentuk struktur html yang valid meliputi tag html, head dan body. contohnya

  • Html yang valid (akan diproses dan diminify)
<html>
   <head>
      <!-- head -->
   </head>
   <body>
      <!-- body -->
   </body>
</html>
  • Html yang tidak valid (tidak diminify)
< html>
   <head>
      <!-- head -->
   </head>
   <body>
      <!-- body -->
   </body>
</ html>

atau

<html>
   <head>
      <!-- head -->
   </head>
</html>

Contoh Hasilnya :

Sebelum

Sesudah

Installasi

Membutuhkan:

Tahap pertama anda bisa menginstall paket ini dengan Composer 2x

composer require dz-id/laravel-html-minifier

Publish konfigurasi file

php artisan vendor:publish --provider="DzId\LaravelHtmlMinifier\HtmlMinifierServiceProvider"

Jangan lupa untuk mendaftarkan ke Global Middleware

\DzId\LaravelHtmlMinifier\Middleware\MinifyHtml::class dan Middleware lainnya harus didaftarkan ke kernel jika diperlukan, contoh :

// file : app/Http/Karnel.php

protected $middleware = [
    ....
    \DzId\LaravelHtmlMinifier\Middleware\MinifyHtml::class,         // middleware untuk minify html
    \DzId\LaravelHtmlMinifier\Middleware\MinifyCss::class,         // middleware untuk minify css style
    \DzId\LaravelHtmlMinifier\Middleware\MinifyJavascript::class, // middleware untuk minify kode javascript
];

Informasi Middleware

\DzId\LaravelHtmlMinifier\Middleware\MinifyHtml::class

MinifyHtml::class fungsinya adalah untuk minify html menghapus blank spasi dan juga baris baru menjadi satu baris.

Contoh Hasil :

  • Sebelum diminify
<html lang="id">
    <head>
        <title>Laravel Html Minifier</title>
    </head>
    <body>
       <h1>Laravel Html Minifier</h1>
    </body>
</html>
  • Sesudah diminify
<html lang="id"><head><title>Laravel Html Minifier</title></head><body><h1>Laravel Html Minifier</h1></body></html>
\DzId\LaravelHtmlMinifier\Middleware\MinifyCss::class

MinifyCss::class fungsinya adalah untuk minify css style menghapus blank spasi dan juga baris baru menjadi satu baris.

Contoh Hasil :

  • Sebelum diminify
body {
   background-color: salmon;
   width: 100%;
   height: 100%;
}
  • Sesudah diminify
body{background-color:salmon;width:100%;height:100%}
\DzId\LaravelHtmlMinifier\Middleware\MinifyJavascript::class

MinifyJavascript::class fungsinya adalah untuk minify kode javascript menghapus blank spasi dan juga baris baru menjadi satu baris.

Catatan: jangan menggunakan kode tanpa kurung kurawal ({}) untuk if, elseif, else, while, for, dll. ini akan menyebebkan kode anda error, contohnya

  • kode yang disarankan
for (let i = 0; i < 10; i++) {
  console.log('hello dunia');
}
  • kode yang tidak disarankan, tanpa kurung kurawal biasanya akan menyebabkan error jika menggunakan MinifyJavascript::class
for (let i = 0; i < 10; i++)    // tanpa
    console.log('hello dunia'); // kurung kurawal
  • sesudah diminify
for (let i = 0; i < 10; i++){console.log('hello dunia')}

kamu juga bisa mengaburkan kode javascript dengan menyetel ke true bagian "obfuscate_javascript" dalam file : config/laravel-html-minifier.php

File Konfigurasi

Setelah menginstall paket anda mungkin perlu mengkonfigurasi beberapa opsi Silahkan masuk ke file config/laravel-html-minifier.php untuk mengubah konfigurasi

Nonaktifkan Layanan

Anda cukup menyetel ke false untuk menonaktifkan Layanan.

// file: config/laravel-html-minifier.php

// setel bagian ini ke false untuk menonaktifkan layanan minify Laravel.
"enable" => env("LARAVEL_HTML_MINIFIER_ENABLE", true),
Otomatis Menambahkan Semicolon Atau Titik Koma Diakhir kode Pada CSS

Jika kode css anda mengalami bug saat menggunakan MinifyCss::class silahkan setel bidang ini ke false.

// file: config/laravel-html-minifier.php

"css_automatic_insert_semicolon" => env("LARAVEL_HTML_MINIFIER_CSS_AUTOMATIC_INSERT_SEMICOLON", true),
Otomatis Menambahkan Semicolon Atau Titik Koma Diakhir kode Pada Javascript

Catatan: Jangan menggunakan jeda baris untuk while, do while, for, if, elseif, else, return, dll. ataupun kode tanpa kurung kurawal ({}). contohnya

  • kode yang disarankan
var log = function(log) {
   return console.log(log);
}

let i = 0;

do {
    if (i == 5) {
       break;
    }
    i++;
    log("hello dunia");
} while (true);
  • kode yang tidak disarankan, akan menyebabkan error jika mengaktifkan "js_automatic_insert_semicolon"
var log = function(log) {
   return               // jeda
      console.log(log); // baris
}

let i = 0;

do
// jeda baris
{
    if (i == 5)  // tanpa
        break;   // kurung kurawal
    i++;
    log("hello dunia");
}
// jeda baris
while (true);

mungkin aja jika mengaktifkan bidang ini kode anda akan menjadi bug karena suatu kondisi yang salah dalam hal ini jika itu terjadi anda cukup menyetel bidang ini ke false

jangan lupa untuk selalu menggunakan titik koma pada kode javascript jika bidang ini disetel ke false

fungsi ini hanya berlaku jika menggunakan MinifyJavascript::class

// file: config/laravel-html-minifier.php

"js_automatic_insert_semicolon" => env("LARAVEL_HTML_MINIFIER_JS_AUTOMATIC_INSERT_SEMICOLON", true),
Menghapus Komentar HTML

Cukup setel ke true untuk mengaktifkan dan setel ke false untuk menonaktifkan.

Fungsi ini hanya berlaku jika menggunakan Middleware MinifyHtml::class

// file: config/laravel-html-minifier.php

// setel bidang ini ke false untuk mematikan
"remove_comments" => env("LARAVEL_HTML_MINIFIER_REMOVE_COMMENTS", true),
Kaburkan Kode Javascript (Obfuscate)

Catatan : jika ada mengaktifkan fungsi ini mungkin kode javascript anda akan menjadi panjang, Fungsi ini akan mengubah satu per satu dari setiap string / text ke chr() fungsi PHP dan didecode dengan String.fromCharCode() fungsi javascript.

Fungsi ini hanya berlaku jika kamu menggunakan Middleware MinifyJavascript::class jika bidang ini disetel ke false kode javascript hanya diminify tidak dikaburkan/Obfuscate

Contoh Hasil :

  • Sebelum dikaburkan
alert(1);
  • Sesudah dikaburkan
eval(((_,__,___,____,_____,______,_______)=>{______[___](x=>_______[__](String[____](x)));return _______[_](_____)})('join','push','forEach','fromCharCode','',[97,108,101,114,116,40,49,41,59],[]))

Dalam kasus ini kamu cukup menyetelnya ke false untuk menonaktifkan dan menyetelnya ke true untuk mengaktifkan

// file : config/laravel-html-minifier.php

// setel ke true untuk mengaktifkan
"obfuscate_javascript" => env("LARAVEL_HTML_MINIFIER_OBFUSCATE_JS", false),
Ignore / Abaikan Route

Anda mungkin ingin mengonfigurasi paket untuk melewati beberapa rute.

// file : config/laravel-html-minifier.php

"ignore" => [
    "*/download/*", // Abaikan semua route yang mengandung download
    "admin/*",     // Abaikan semua route dengan awalan admin,
    "*/user"      // Abaikan route dengan akhiran user
]

Skip / Lewati dengan menambahkan attribute ignore--minify

Kamu cukup menambahkan attribute ignore--minify dalam tag script / style untuk melewati proses minify.

Contoh :

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

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

Setiap tag style/script yang memiliki attribute ignore--minify akan dilewati tidak diminify.

Skip / Lewati View dengan menambahkan data "ignore_minify" ke dalam view

Kamu juga bisa melewati minify dengan memasukan data "ignore_minify" kedalam view

Contoh :

// View ini tidak diminify akan di skip.
return view("welcome", ["ignore_minify" => true]);

Lisensi

MIT (MIT)

You might also like...
Neo Integrator adalah alat bantu untuk import data ke Neo Feeder dengan cara copy paste saja. bersifat free dan opensource. Semoga Bermanfaat.

Neo-Integrator Penerus dari SimpleFeeder, yang berubah jadi Excel2Feeder dan bertransformasi menjadi Neo-integrator Last Update : 16-05-2022 Capture :

SISTEM PEMINJAMAN BUKU adalah sebuah sistem aplikasi berbasis website untuk transaksi peminjaman buku
SISTEM PEMINJAMAN BUKU adalah sebuah sistem aplikasi berbasis website untuk transaksi peminjaman buku

SISTEM PEMINJAMAN BUKU adalah sebuah sistem aplikasi berbasis website untuk transaksi peminjaman buku Fitur utama SISTEM PEMINJAMAN Login Management b

Middleware to minify the Html, CSS and Javascript content using wyrihaximus/compress

middlewares/minifier Middleware to minify the Html, CSS and Javascript content using wyrihaximus/compress and the following compressors by default: wy

Aplikasi yang membantu anda mencukupi gizi sehari-hari

Peduli Gizi Aplikasi yang membantu anda mencukupi gizi sehari-hari Built With Peduli Gizi dibuat dengan Laravel Mysql (back to top) Installation Clone

A Laravel package to output a specific sql to your favourite debugging tool. The supported log output is Laravel Telescope, Laravel Log, Ray, Clockwork, Laravel Debugbar and your browser.
A Laravel package to output a specific sql to your favourite debugging tool. The supported log output is Laravel Telescope, Laravel Log, Ray, Clockwork, Laravel Debugbar and your browser.

Laravel showsql A Laravel package to output a specific sql to your favourite debugging tool, your browser or your log file. Use case You often want to

Aplikasi Point of Sale berbasis website menggunakan PHP native,  Vanila Javascript , Bootstrap 5, Datatables dan MySQL
Aplikasi Point of Sale berbasis website menggunakan PHP native, Vanila Javascript , Bootstrap 5, Datatables dan MySQL

POS adalah sebuah aplikasi point of sale berbasis website yang dibangun menggunakan tech stack JS - PHP - MySQL.

PHP slim framework middleware to minify HTML output

slim-minify Slim middleware to minify HTML output generated by the slim PHP framework. It removes whitespaces, empty lines, tabs beetween html-tags an

A Parser for CSS Files written in PHP. Allows extraction of CSS files into a data structure, manipulation of said structure and output as (optimized) CSS

PHP CSS Parser A Parser for CSS Files written in PHP. Allows extraction of CSS files into a data structure, manipulation of said structure and output

A PHP Command Line tool that makes it easy to compile, concat, and minify front-end Javascript and CSS/SCSS dependencies.

Front End Compiler A PHP Command Line tool that makes it easy to compile, concat, and minify front-end Javascript and CSS/SCSS dependencies. The minif

TYPO3 CMS extension which checks used CSS selectors in HTML output of the current page and removes CSS declarations which are unused.

EXT:css_coverage TYPO3 CMS extension which checks used CSS selectors in HTML output of the current page and removes CSS declarations which are unused.

YogsMAP adalah GIS(Geographic Information System) yang dibangun dengan PHP Native, MapBox API dan Boostrap
YogsMAP adalah GIS(Geographic Information System) yang dibangun dengan PHP Native, MapBox API dan Boostrap

YogsMAP adalah GIS(Geographic Information System) yang dibangun dengan PHP Native, MapBox API dan Boostrap. Website ini menampilkan data pada area di yogyakarta, serta bisa menampilkan lokasi-lokasi yang diinginkan.

Pusat Karir adalah sebuah website yang menyediakan informasi tentang karir, seperti lowongan kerja, informasi tentang karir, dan lain-lain.
Pusat Karir adalah sebuah website yang menyediakan informasi tentang karir, seperti lowongan kerja, informasi tentang karir, dan lain-lain.

Pusat Karir Project Codeigniter 📌 About Pusat Karir adalah sebuah website yang menyediakan informasi tentang karir, seperti lowongan kerja, informasi

Aplikasi pertama belajar laravel 8 dan saat masih dalam pengerjaan.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Aplikasi chat dengan laravel dan react

Aplikasi Chat Stack Laravel 8 ReactJs InertiaJs Deskripsi Aplikasi Chat yang menggunakan Backend Laravel dan Frontend React. Namun, karena saya malas

Aplikasi voting berbasis Web yang sederhana dan mudah digunakan

Dipolling - Buat Pemilihan dengan mudah Tentang Aplikasi Polling Sederhana dengan tampilan dan manajemen tabel polling yang mudah digunakan oleh pengg

Aplikasi web yang dibuat sebagai sarana pengaduan layanan masyarakat seperti infrastruktur dan fasilitas umum, ataupun permasalahan yang dihadapi masyarakat kelurahan Mengger
Aplikasi web yang dibuat sebagai sarana pengaduan layanan masyarakat seperti infrastruktur dan fasilitas umum, ataupun permasalahan yang dihadapi masyarakat kelurahan Mengger

SIPADU 🌐 Aplikasi web yang dibuat sebagai sarana pengaduan layanan masyarakat seperti infrastruktur dan fasilitas umum, ataupun permasalahan yang dih

Berikut Adalah cara untuk melakukan CRUD di FrameWork Laravel, Silahkan Disimak

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Javascript Minifier built in PHP

JShrink JShrink is a php class that minifies javascript so that it can be delivered to the client quicker. This code can be used by any product lookin

A fast Javascript minifier that removes unnecessary whitespace and comments

js-minify A fast Javascript minifier that removes unnecessary whitespace and comments Installation If you are using Composer, use composer require gar

Owner
:D
:D
Laravel Javascript Validation

Laravel Javascript Validation Laravel Javascript Validation package allows to reuse your Laravel Validation Rules, Messages, FormRequest and Validator

Proengsoft 991 Jan 4, 2023
Use your Laravel named routes in JavaScript

Ziggy – Use your Laravel routes in JavaScript Ziggy provides a JavaScript route() helper function that works like Laravel's, making it easy to use you

Tighten 3.1k Dec 28, 2022
Use your Laravel named routes in JavaScript

Ziggy – Use your Laravel routes in JavaScript Ziggy provides a JavaScript route() helper function that works like Laravel's, making it easy to use you

Tighten 3.1k Dec 28, 2022
Transform PHP data to JavaScript.

Transform PHP Vars to JavaScript Often, you'll find yourself in situations, where you want to pass some server-side string/array/collection/whatever t

Laracasts 2.2k Jan 1, 2023
A Blade directive to export variables to JavaScript

A Blade directive to export variables to JavaScript This package contains a Blade directive to export values to JavaScript. Here's an example of how i

Spatie 546 Dec 21, 2022
A pjax middleware for Laravel

A pjax middleware for Laravel Pjax is a jQuery plugin that leverages ajax to speed up the loading time of your pages. It works by only fetching specif

Spatie 505 Dec 28, 2022
A full-stack framework for Laravel that takes the pain out of building dynamic UIs.

Laravel Livewire See the docs for everything: https://laravel-livewire.com/docs/quickstart Awesome Livewire stuff here: https://github.com/imliam/awes

Livewire 17.7k Dec 31, 2022
WIRECRUD 9 adalah aplikasi CRUD + Search sederhana yang dibuat menggukana Laravel 9 dan Livewire 2

WIRECRUD 9 adalah aplikasi CRUD + Search sederhana yang dibuat menggukana Laravel 9 dan Livewire 2. Demo bisa dilihat di YouTube Developow Terbuka jika ingin clone apliaksi sederhana ini untuk belajar, bisa ikuti cara-cara berikut ini.

DeveloPow 11 Nov 25, 2022
David Pratama 1 Oct 13, 2021