LaravelPackages.net
Acme Inc.
Toggle sidebar
devfactory/minify

A package for minifying styles and javascript for laravel 5

407.920
82
2.0.2
About devfactory/minify

devfactory/minify is a Laravel package for a package for minifying styles and javascript for laravel 5. It currently has 82 GitHub stars and 407.920 downloads on Packagist (latest version 2.0.2). Install it with composer require devfactory/minify. Discover more Laravel packages by devfactory or browse all Laravel packages to compare alternatives.

Last updated

Minify

Build Status Latest Stable Version Total Downloads License

With this package you can minify your existing stylesheet and JavaScript files for Laravel 10. This process can be a little tough, this package simplifies and automates this process.

For Laravel 5 - 9 please use version 1.x of this package.

For Laravel 4 please use ceesvanegmond/minify

Installation

Begin by installing this package through Composer.

{
    "require": {
        "devfactory/minify": "^2.0"
    }
}

After the package installation, the MinifyServiceProvider and Minify facade are automatically registered. You can use the Minify facade anywhere in your application.

To publish the config file:

php artisan vendor:publish --provider="Devfactory\Minify\MinifyServiceProvider" --tag="config"

Upgrade to v2

Minify version 2 is PHP 8.1+ and Laravel 10+ only.

Required upgrade changes

If the Devfactory\Minify\Contracts\MinifyInterface interface is implemented, make sure update your implementation according to the updated types and exceptions.

If the Devfactory\Minify\Providers\BaseProvider abstract class is used, make sure update your classes according to the updated types and exceptions.

The method Devfactory\Minify\Providers\StyleSheet#urlCorrection has been renamed to Devfactory\Minify\Providers\StyleSheet#getFileContentWithCorrectedUrls.

Rename the minify.config.php configuration file to minify.php.

Usage

Stylesheet

// app/views/hello.blade.php

<html>
    <head>
        ...
        {!! Minify::stylesheet('/css/main.css') !!}
        // or by passing multiple files
        {!! Minify::stylesheet(['/css/main.css', '/css/bootstrap.css']) !!}
        // add custom attributes
        {!! Minify::stylesheet(['/css/main.css', '/css/bootstrap.css'], ['foo' => 'bar']) !!}
        // add full uri of the resource
        {!! Minify::stylesheet(['/css/main.css', '/css/bootstrap.css'])->withFullUrl() !!}
        {!! Minify::stylesheet(['//fonts.googleapis.com/css?family=Roboto']) !!}

        // minify and combine all stylesheet files in given folder
        {!! Minify::stylesheetDir('/css/') !!}
        // add custom attributes to minify and combine all stylesheet files in given folder
        {!! Minify::stylesheetDir('/css/', ['foo' => 'bar', 'defer' => true]) !!}
        // minify and combine all stylesheet files in given folder with full uri
        {!! Minify::stylesheetDir('/css/')->withFullUrl() !!}
    </head>
    ...
</html>

Javascript

// app/views/hello.blade.php

<html>
    <body>
    ...
    </body>
    {!! Minify::javascript('/js/jquery.js') !!}
    // or by passing multiple files
    {!! Minify::javascript(['/js/jquery.js', '/js/jquery-ui.js']) !!}
    // add custom attributes
    {!! Minify::javascript(['/js/jquery.js', '/js/jquery-ui.js'], ['bar' => 'baz']) !!}
    // add full uri of the resource
    {!! Minify::javascript(['/js/jquery.js', '/js/jquery-ui.js'])->withFullUrl() !!}
    {!! Minify::javascript(['//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js']) !!}

    // minify and combine all javascript files in given folder
    {!! Minify::javascriptDir('/js/') !!}
    // add custom attributes to minify and combine all javascript files in given folder
    {!! Minify::javascriptDir('/js/', ['bar' => 'baz', 'async' => true]) !!}
    // minify and combine all javascript files in given folder with full uri
    {!! Minify::javascriptDir('/js/')->withFullUrl() !!}
</html>
Comments